Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: lib/src/tree.dart

Issue 873313003: Cleanup some ambiguous and incorrect types and disable a case that in analyzer.dart that seems like… (Closed) Base URL: git@github.com:dart-lang/csslib.git@master
Patch Set: ptal Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/src/property.dart ('k') | lib/visitor.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of csslib.visitor; 5 part of csslib.visitor;
6 6
7 ///////////////////////////////////////////////////////////////////////// 7 /////////////////////////////////////////////////////////////////////////
8 // CSS specific types: 8 // CSS specific types:
9 ///////////////////////////////////////////////////////////////////////// 9 /////////////////////////////////////////////////////////////////////////
10 10
(...skipping 1188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 // font-style font-variant font-weight font-size/line-height font-family 1199 // font-style font-variant font-weight font-size/line-height font-family
1200 // TODO(terry): Only px/pt for now need to handle all possible units to 1200 // TODO(terry): Only px/pt for now need to handle all possible units to
1201 // support calc expressions on units. 1201 // support calc expressions on units.
1202 FontExpression(SourceSpan span, {dynamic size, List<String> family, 1202 FontExpression(SourceSpan span, {dynamic size, List<String> family,
1203 int weight, String style, String variant, LineHeight lineHeight}) : 1203 int weight, String style, String variant, LineHeight lineHeight}) :
1204 font = new Font(size : size is LengthTerm ? size.value : size, 1204 font = new Font(size : size is LengthTerm ? size.value : size,
1205 family: family, weight: weight, style: style, variant: variant, 1205 family: family, weight: weight, style: style, variant: variant,
1206 lineHeight: lineHeight), 1206 lineHeight: lineHeight),
1207 super(DartStyleExpression.fontStyle, span); 1207 super(DartStyleExpression.fontStyle, span);
1208 1208
1209 FontExpression merged(FontExpression newFontExpr) { 1209 FontExpression merged(DartStyleExpression newFontExpr) {
1210 if (this.isFont && newFontExpr.isFont) { 1210 if (newFontExpr is FontExpression && this.isFont && newFontExpr.isFont) {
1211 return new FontExpression.merge(this, newFontExpr); 1211 return new FontExpression.merge(this, newFontExpr);
1212 } 1212 }
1213
1214 return null; 1213 return null;
1215 } 1214 }
1216 1215
1217 /** 1216 /**
1218 * Merge the two FontExpression and return the result. 1217 * Merge the two FontExpression and return the result.
1219 */ 1218 */
1220 factory FontExpression.merge(FontExpression x, FontExpression y) { 1219 factory FontExpression.merge(FontExpression x, FontExpression y) {
1221 return new FontExpression._merge(x, y, y.span); 1220 return new FontExpression._merge(x, y, y.span);
1222 } 1221 }
1223 1222
1224 FontExpression._merge(FontExpression x, FontExpression y, SourceSpan span) 1223 FontExpression._merge(FontExpression x, FontExpression y, SourceSpan span)
1225 : super(DartStyleExpression.fontStyle, span), 1224 : font = new Font.merge(x.font, y.font),
1226 font = new Font.merge(x.font, y.font); 1225 super(DartStyleExpression.fontStyle, span);
1227 1226
1228 FontExpression clone() => 1227 FontExpression clone() =>
1229 new FontExpression(span, size: font.size, family: font.family, 1228 new FontExpression(span, size: font.size, family: font.family,
1230 weight: font.weight, style: font.style, variant: font.variant, 1229 weight: font.weight, style: font.style, variant: font.variant,
1231 lineHeight: font.lineHeight); 1230 lineHeight: font.lineHeight);
1232 1231
1233 visit(VisitorBase visitor) => visitor.visitFontExpression(this); 1232 visit(VisitorBase visitor) => visitor.visitFontExpression(this);
1234 } 1233 }
1235 1234
1236 abstract class BoxExpression extends DartStyleExpression { 1235 abstract class BoxExpression extends DartStyleExpression {
1237 final BoxEdge box; 1236 final BoxEdge box;
1238 1237
1239 BoxExpression(int styleType, SourceSpan span, this.box) 1238 BoxExpression(int styleType, SourceSpan span, this.box)
1240 : super(styleType, span); 1239 : super(styleType, span);
1241 1240
1242 /*
1243 * Merges give 2 DartStyleExpression (or derived from DartStyleExpression,
1244 * e.g., FontExpression, etc.) will merge if the two expressions are of the
1245 * same property name (implies same exact type e.g, FontExpression).
1246 */
1247 merged(BoxExpression newDartExpr);
1248
1249 visit(VisitorBase visitor) => visitor.visitBoxExpression(this); 1241 visit(VisitorBase visitor) => visitor.visitBoxExpression(this);
1250 1242
1251 String get formattedBoxEdge { 1243 String get formattedBoxEdge {
1252 if (box.top == box.left && box.top == box.bottom && 1244 if (box.top == box.left && box.top == box.bottom &&
1253 box.top== box.right) { 1245 box.top== box.right) {
1254 return '.uniform(${box.top})'; 1246 return '.uniform(${box.top})';
1255 } else { 1247 } else {
1256 var left = box.left == null ? 0 : box.left; 1248 var left = box.left == null ? 0 : box.left;
1257 var top = box.top == null ? 0 : box.top; 1249 var top = box.top == null ? 0 : box.top;
1258 var right = box.right == null ? 0 : box.right; 1250 var right = box.right == null ? 0 : box.right;
1259 var bottom = box.bottom == null ? 0 : box.bottom; 1251 var bottom = box.bottom == null ? 0 : box.bottom;
1260 return '.clockwiseFromTop($top,$right,$bottom,$left)'; 1252 return '.clockwiseFromTop($top,$right,$bottom,$left)';
1261 } 1253 }
1262 } 1254 }
1263 } 1255 }
1264 1256
1265 class MarginExpression extends BoxExpression { 1257 class MarginExpression extends BoxExpression {
1266 // TODO(terry): Does auto for margin need to be exposed to Dart UI framework? 1258 // TODO(terry): Does auto for margin need to be exposed to Dart UI framework?
1267 /** Margin expression ripped apart. */ 1259 /** Margin expression ripped apart. */
1268 MarginExpression(SourceSpan span, {num top, num right, num bottom, num left}) 1260 MarginExpression(SourceSpan span, {num top, num right, num bottom, num left})
1269 : super(DartStyleExpression.marginStyle, span, 1261 : super(DartStyleExpression.marginStyle, span,
1270 new BoxEdge(left, top, right, bottom)); 1262 new BoxEdge(left, top, right, bottom));
1271 1263
1272 MarginExpression.boxEdge(SourceSpan span, BoxEdge box) 1264 MarginExpression.boxEdge(SourceSpan span, BoxEdge box)
1273 : super(DartStyleExpression.marginStyle, span, box); 1265 : super(DartStyleExpression.marginStyle, span, box);
1274 1266
1275 merged(MarginExpression newMarginExpr) { 1267 merged(DartStyleExpression newMarginExpr) {
1276 if (this.isMargin && newMarginExpr.isMargin) { 1268 if (newMarginExpr is MarginExpression && this.isMargin &&
1269 newMarginExpr.isMargin) {
1277 return new MarginExpression.merge(this, newMarginExpr); 1270 return new MarginExpression.merge(this, newMarginExpr);
1278 } 1271 }
1279 1272
1280 return null; 1273 return null;
1281 } 1274 }
1282 1275
1283 /** 1276 /**
1284 * Merge the two MarginExpressions and return the result. 1277 * Merge the two MarginExpressions and return the result.
1285 */ 1278 */
1286 factory MarginExpression.merge(MarginExpression x, MarginExpression y) { 1279 factory MarginExpression.merge(MarginExpression x, MarginExpression y) {
(...skipping 13 matching lines...) Expand all
1300 1293
1301 class BorderExpression extends BoxExpression { 1294 class BorderExpression extends BoxExpression {
1302 /** Border expression ripped apart. */ 1295 /** Border expression ripped apart. */
1303 BorderExpression(SourceSpan span, {num top, num right, num bottom, num left}) 1296 BorderExpression(SourceSpan span, {num top, num right, num bottom, num left})
1304 : super(DartStyleExpression.borderStyle, span, 1297 : super(DartStyleExpression.borderStyle, span,
1305 new BoxEdge(left, top, right, bottom)); 1298 new BoxEdge(left, top, right, bottom));
1306 1299
1307 BorderExpression.boxEdge(SourceSpan span, BoxEdge box) 1300 BorderExpression.boxEdge(SourceSpan span, BoxEdge box)
1308 : super(DartStyleExpression.borderStyle, span, box); 1301 : super(DartStyleExpression.borderStyle, span, box);
1309 1302
1310 merged(BorderExpression newBorderExpr) { 1303 merged(DartStyleExpression newBorderExpr) {
1311 if (this.isBorder && newBorderExpr.isBorder) { 1304 if (newBorderExpr is BorderExpression && this.isBorder && newBorderExpr.isBo rder) {
1312 return new BorderExpression.merge(this, newBorderExpr); 1305 return new BorderExpression.merge(this, newBorderExpr);
1313 } 1306 }
1314 1307
1315 return null; 1308 return null;
1316 } 1309 }
1317 1310
1318 /** 1311 /**
1319 * Merge the two BorderExpression and return the result. 1312 * Merge the two BorderExpression and return the result.
1320 */ 1313 */
1321 factory BorderExpression.merge(BorderExpression x, BorderExpression y) { 1314 factory BorderExpression.merge(BorderExpression x, BorderExpression y) {
(...skipping 11 matching lines...) Expand all
1333 1326
1334 visit(VisitorBase visitor) => visitor.visitBorderExpression(this); 1327 visit(VisitorBase visitor) => visitor.visitBorderExpression(this);
1335 } 1328 }
1336 1329
1337 class HeightExpression extends DartStyleExpression { 1330 class HeightExpression extends DartStyleExpression {
1338 final height; 1331 final height;
1339 1332
1340 HeightExpression(SourceSpan span, this.height) 1333 HeightExpression(SourceSpan span, this.height)
1341 : super(DartStyleExpression.heightStyle, span); 1334 : super(DartStyleExpression.heightStyle, span);
1342 1335
1343 merged(HeightExpression newHeightExpr) { 1336 merged(DartStyleExpression newHeightExpr) {
1344 if (this.isHeight && newHeightExpr.isHeight) { 1337 if (newHeightExpr is DartStyleExpression && this.isHeight && newHeightExpr.i sHeight) {
1345 return newHeightExpr; 1338 return newHeightExpr;
1346 } 1339 }
1347 1340
1348 return null; 1341 return null;
1349 } 1342 }
1350 1343
1351 HeightExpression clone() => new HeightExpression(span, height); 1344 HeightExpression clone() => new HeightExpression(span, height);
1352 visit(VisitorBase visitor) => visitor.visitHeightExpression(this); 1345 visit(VisitorBase visitor) => visitor.visitHeightExpression(this);
1353 } 1346 }
1354 1347
1355 class WidthExpression extends DartStyleExpression { 1348 class WidthExpression extends DartStyleExpression {
1356 final width; 1349 final width;
1357 1350
1358 WidthExpression(SourceSpan span, this.width) 1351 WidthExpression(SourceSpan span, this.width)
1359 : super(DartStyleExpression.widthStyle, span); 1352 : super(DartStyleExpression.widthStyle, span);
1360 1353
1361 merged(WidthExpression newWidthExpr) { 1354 merged(DartStyleExpression newWidthExpr) {
1362 if (this.isWidth && newWidthExpr.isWidth) { 1355 if (newWidthExpr is WidthExpression && this.isWidth &&
1356 newWidthExpr.isWidth) {
1363 return newWidthExpr; 1357 return newWidthExpr;
1364 } 1358 }
1365 1359
1366 return null; 1360 return null;
1367 } 1361 }
1368 1362
1369 WidthExpression clone() => new WidthExpression(span, width); 1363 WidthExpression clone() => new WidthExpression(span, width);
1370 visit(VisitorBase visitor) => visitor.visitWidthExpression(this); 1364 visit(VisitorBase visitor) => visitor.visitWidthExpression(this);
1371 } 1365 }
1372 1366
1373 class PaddingExpression extends BoxExpression { 1367 class PaddingExpression extends BoxExpression {
1374 /** Padding expression ripped apart. */ 1368 /** Padding expression ripped apart. */
1375 PaddingExpression(SourceSpan span, {num top, num right, num bottom, num left}) 1369 PaddingExpression(SourceSpan span, {num top, num right, num bottom, num left})
1376 : super(DartStyleExpression.paddingStyle, span, 1370 : super(DartStyleExpression.paddingStyle, span,
1377 new BoxEdge(left, top, right, bottom)); 1371 new BoxEdge(left, top, right, bottom));
1378 1372
1379 PaddingExpression.boxEdge(SourceSpan span, BoxEdge box) 1373 PaddingExpression.boxEdge(SourceSpan span, BoxEdge box)
1380 : super(DartStyleExpression.paddingStyle, span, box); 1374 : super(DartStyleExpression.paddingStyle, span, box);
1381 1375
1382 merged(PaddingExpression newPaddingExpr) { 1376 merged(DartStyleExpression newPaddingExpr) {
1383 if (this.isPadding && newPaddingExpr.isPadding) { 1377 if (newPaddingExpr is PaddingExpression && this.isPadding &&
1378 newPaddingExpr.isPadding) {
1384 return new PaddingExpression.merge(this, newPaddingExpr); 1379 return new PaddingExpression.merge(this, newPaddingExpr);
1385 } 1380 }
1386 1381
1387 return null; 1382 return null;
1388 } 1383 }
1389 1384
1390 /** 1385 /**
1391 * Merge the two PaddingExpression and return the result. 1386 * Merge the two PaddingExpression and return the result.
1392 */ 1387 */
1393 factory PaddingExpression.merge(PaddingExpression x, PaddingExpression y) { 1388 factory PaddingExpression.merge(PaddingExpression x, PaddingExpression y) {
1394 return new PaddingExpression._merge(x, y, y.span); 1389 return new PaddingExpression._merge(x, y, y.span);
1395 } 1390 }
1396 1391
1397 PaddingExpression._merge(PaddingExpression x, PaddingExpression y, 1392 PaddingExpression._merge(PaddingExpression x, PaddingExpression y,
1398 SourceSpan span) 1393 SourceSpan span)
1399 : super(DartStyleExpression.paddingStyle, span, 1394 : super(DartStyleExpression.paddingStyle, span,
1400 new BoxEdge.merge(x.box, y.box)); 1395 new BoxEdge.merge(x.box, y.box));
1401 1396
1402 PaddingExpression clone() => 1397 PaddingExpression clone() =>
1403 new PaddingExpression(span, top: box.top, right: box.right, 1398 new PaddingExpression(span, top: box.top, right: box.right,
1404 bottom: box.bottom, left: box.left); 1399 bottom: box.bottom, left: box.left);
1405 visit(VisitorBase visitor) => visitor.visitPaddingExpression(this); 1400 visit(VisitorBase visitor) => visitor.visitPaddingExpression(this);
1406 } 1401 }
OLDNEW
« no previous file with comments | « lib/src/property.dart ('k') | lib/visitor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698