Index: lib/src/tree.dart |
diff --git a/lib/src/tree.dart b/lib/src/tree.dart |
index 53a5f9f054fd181f337d92e12eeb50d9f27b66c8..37d07414d03235c4346f1cda538d140123696eb2 100644 |
--- a/lib/src/tree.dart |
+++ b/lib/src/tree.dart |
@@ -1206,11 +1206,10 @@ class FontExpression extends DartStyleExpression { |
lineHeight: lineHeight), |
super(DartStyleExpression.fontStyle, span); |
- FontExpression merged(FontExpression newFontExpr) { |
- if (this.isFont && newFontExpr.isFont) { |
+ FontExpression merged(DartStyleExpression newFontExpr) { |
+ if (newFontExpr is FontExpression && this.isFont && newFontExpr.isFont) { |
return new FontExpression.merge(this, newFontExpr); |
} |
- |
return null; |
} |
@@ -1222,8 +1221,8 @@ class FontExpression extends DartStyleExpression { |
} |
FontExpression._merge(FontExpression x, FontExpression y, SourceSpan span) |
- : super(DartStyleExpression.fontStyle, span), |
- font = new Font.merge(x.font, y.font); |
+ : font = new Font.merge(x.font, y.font), |
+ super(DartStyleExpression.fontStyle, span); |
FontExpression clone() => |
new FontExpression(span, size: font.size, family: font.family, |
@@ -1239,13 +1238,6 @@ abstract class BoxExpression extends DartStyleExpression { |
BoxExpression(int styleType, SourceSpan span, this.box) |
: super(styleType, span); |
- /* |
- * Merges give 2 DartStyleExpression (or derived from DartStyleExpression, |
- * e.g., FontExpression, etc.) will merge if the two expressions are of the |
- * same property name (implies same exact type e.g, FontExpression). |
- */ |
- merged(BoxExpression newDartExpr); |
- |
visit(VisitorBase visitor) => visitor.visitBoxExpression(this); |
String get formattedBoxEdge { |
@@ -1272,8 +1264,9 @@ class MarginExpression extends BoxExpression { |
MarginExpression.boxEdge(SourceSpan span, BoxEdge box) |
: super(DartStyleExpression.marginStyle, span, box); |
- merged(MarginExpression newMarginExpr) { |
- if (this.isMargin && newMarginExpr.isMargin) { |
+ merged(DartStyleExpression newMarginExpr) { |
+ if (newMarginExpr is MarginExpression && this.isMargin && |
+ newMarginExpr.isMargin) { |
return new MarginExpression.merge(this, newMarginExpr); |
} |
@@ -1307,8 +1300,8 @@ class BorderExpression extends BoxExpression { |
BorderExpression.boxEdge(SourceSpan span, BoxEdge box) |
: super(DartStyleExpression.borderStyle, span, box); |
- merged(BorderExpression newBorderExpr) { |
- if (this.isBorder && newBorderExpr.isBorder) { |
+ merged(DartStyleExpression newBorderExpr) { |
+ if (newBorderExpr is BorderExpression && this.isBorder && newBorderExpr.isBorder) { |
return new BorderExpression.merge(this, newBorderExpr); |
} |
@@ -1340,8 +1333,8 @@ class HeightExpression extends DartStyleExpression { |
HeightExpression(SourceSpan span, this.height) |
: super(DartStyleExpression.heightStyle, span); |
- merged(HeightExpression newHeightExpr) { |
- if (this.isHeight && newHeightExpr.isHeight) { |
+ merged(DartStyleExpression newHeightExpr) { |
+ if (newHeightExpr is DartStyleExpression && this.isHeight && newHeightExpr.isHeight) { |
return newHeightExpr; |
} |
@@ -1358,8 +1351,9 @@ class WidthExpression extends DartStyleExpression { |
WidthExpression(SourceSpan span, this.width) |
: super(DartStyleExpression.widthStyle, span); |
- merged(WidthExpression newWidthExpr) { |
- if (this.isWidth && newWidthExpr.isWidth) { |
+ merged(DartStyleExpression newWidthExpr) { |
+ if (newWidthExpr is WidthExpression && this.isWidth && |
+ newWidthExpr.isWidth) { |
return newWidthExpr; |
} |
@@ -1379,8 +1373,9 @@ class PaddingExpression extends BoxExpression { |
PaddingExpression.boxEdge(SourceSpan span, BoxEdge box) |
: super(DartStyleExpression.paddingStyle, span, box); |
- merged(PaddingExpression newPaddingExpr) { |
- if (this.isPadding && newPaddingExpr.isPadding) { |
+ merged(DartStyleExpression newPaddingExpr) { |
+ if (newPaddingExpr is PaddingExpression && this.isPadding && |
+ newPaddingExpr.isPadding) { |
return new PaddingExpression.merge(this, newPaddingExpr); |
} |