Chromium Code Reviews| Index: lib/src/tree.dart |
| diff --git a/lib/src/tree.dart b/lib/src/tree.dart |
| index ba8370e96b1b1a65acb8fcca5de95fb3a2d047ac..ded846dfc7c0883bc706ee94f1993ca0921f324a 100644 |
| --- a/lib/src/tree.dart |
| +++ b/lib/src/tree.dart |
| @@ -421,7 +421,7 @@ class ImportDirective extends Directive { |
| : super(span); |
| ImportDirective clone() { |
| - var cloneMediaQueries = []; |
| + var cloneMediaQueries = <MediaQuery>[]; |
| for (var mediaQuery in mediaQueries) { |
| cloneMediaQueries.add(mediaQuery.clone()); |
| } |
| @@ -483,7 +483,7 @@ class MediaQuery extends TreeNode { |
| TokenKind.idToValue(TokenKind.MEDIA_OPERATORS, _mediaUnary).toUpperCase(); |
| MediaQuery clone() { |
| - var cloneExpressions = []; |
| + var cloneExpressions = <MediaExpression>[]; |
| for (var expr in expressions) { |
| cloneExpressions.add(expr.clone()); |
| } |
| @@ -500,11 +500,11 @@ class MediaDirective extends Directive { |
| : super(span); |
| MediaDirective clone() { |
| - var cloneQueries = []; |
| + var cloneQueries = <MediaQuery>[]; |
| for (var mediaQuery in mediaQueries) { |
| cloneQueries.add(mediaQuery.clone()); |
| } |
| - var cloneRulesets = []; |
| + var cloneRulesets = <RuleSet>[]; |
| for (var ruleset in rulesets) { |
| cloneRulesets.add(ruleset.clone()); |
| } |
| @@ -520,7 +520,7 @@ class HostDirective extends Directive { |
| HostDirective(this.rulesets, SourceSpan span) : super(span); |
| HostDirective clone() { |
| - var cloneRulesets = []; |
| + var cloneRulesets = <RuleSet>[]; |
| for (var ruleset in rulesets) { |
| cloneRulesets.add(ruleset.clone()); |
| } |
| @@ -540,7 +540,7 @@ class PageDirective extends Directive { |
| : super(span); |
| PageDirective clone() { |
| - var cloneDeclsMargin = []; |
| + var cloneDeclsMargin = <DeclarationGroup>[]; |
| for (var declMargin in _declsMargin) { |
| cloneDeclsMargin.add(declMargin.clone()); |
| } |
| @@ -635,7 +635,7 @@ class StyletDirective extends Directive { |
| bool get isExtension => true; |
| StyletDirective clone() { |
| - var cloneRulesets = []; |
| + var cloneRulesets = <RuleSet>[]; |
| for (var ruleset in rulesets) { |
| cloneRulesets.add(ruleset.clone()); |
| } |
| @@ -675,14 +675,14 @@ class VarDefinitionDirective extends Directive { |
| class MixinDefinition extends Directive { |
| final String name; |
| - final List definedArgs; |
| + final List<TreeNode> definedArgs; |
| final bool varArgs; |
| MixinDefinition(this.name, this.definedArgs, this.varArgs, SourceSpan span) |
| : super(span); |
| MixinDefinition clone() { |
| - var cloneDefinedArgs = []; |
| + var cloneDefinedArgs = <TreeNode>[]; |
| for (var definedArg in definedArgs) { |
| cloneDefinedArgs.add(definedArg.clone()); |
| } |
| @@ -694,18 +694,18 @@ class MixinDefinition extends Directive { |
| /** Support a Sass @mixin. See http://sass-lang.com for description. */ |
| class MixinRulesetDirective extends MixinDefinition { |
| - final List rulesets; |
| + final List<TreeNode> rulesets; |
| - MixinRulesetDirective(String name, List<VarDefinitionDirective> args, |
| + MixinRulesetDirective(String name, List<VarDefinition> args, |
| bool varArgs, this.rulesets, SourceSpan span) |
| : super(name, args, varArgs, span); |
| MixinRulesetDirective clone() { |
| - var clonedArgs = []; |
| + var clonedArgs = <VarDefinition>[]; |
| for (var arg in definedArgs) { |
| clonedArgs.add(arg.clone()); |
| } |
| - var clonedRulesets = []; |
| + var clonedRulesets = <TreeNode>[]; |
| for (var ruleset in rulesets) { |
| clonedRulesets.add(ruleset.clone()); |
| } |
| @@ -719,12 +719,12 @@ class MixinRulesetDirective extends MixinDefinition { |
| class MixinDeclarationDirective extends MixinDefinition { |
| final DeclarationGroup declarations; |
| - MixinDeclarationDirective(String name, List<VarDefinitionDirective> args, |
| + MixinDeclarationDirective(String name, List<TreeNode> args, |
| bool varArgs, this.declarations, SourceSpan span) |
| : super(name, args, varArgs, span); |
| MixinDeclarationDirective clone() { |
| - var clonedArgs = []; |
| + var clonedArgs = <TreeNode>[]; |
| for (var arg in definedArgs) { |
| clonedArgs.add(arg.clone()); |
| } |
| @@ -738,16 +738,14 @@ class MixinDeclarationDirective extends MixinDefinition { |
| /** To support consuming a SASS mixin @include. */ |
| class IncludeDirective extends Directive { |
| final String name; |
| - final List<List<TreeNode>> args; |
| + final List<List<Expression>> args; |
| IncludeDirective(this.name, this.args, SourceSpan span) : super(span); |
| IncludeDirective clone() { |
| - var cloneArgs = []; |
| + var cloneArgs = <List<Expression>>[]; |
| for (var arg in args) { |
| - for (var term in arg) { |
| - cloneArgs.add(term.clone()); |
| - } |
| + cloneArgs.add(arg.map((term) => term.clone()).toList()); |
|
Bob Nystrom
2016/03/25 03:11:27
I believe the previous code was wrong here.
|
| } |
| return new IncludeDirective(name, cloneArgs, span); |
| } |
| @@ -852,7 +850,7 @@ class ExtendDeclaration extends Declaration { |
| class DeclarationGroup extends TreeNode { |
| /** Can be either Declaration or RuleSet (if nested selector). */ |
| - final List declarations; |
| + final List<TreeNode> declarations; |
| DeclarationGroup(this.declarations, SourceSpan span) : super(span); |
| @@ -867,10 +865,10 @@ class DeclarationGroup extends TreeNode { |
| class MarginGroup extends DeclarationGroup { |
| final int margin_sym; // TokenType for for @margin sym. |
| - MarginGroup(this.margin_sym, List<Declaration> decls, SourceSpan span) |
| + MarginGroup(this.margin_sym, List<TreeNode> decls, SourceSpan span) |
| : super(decls, span); |
| MarginGroup clone() => |
| - new MarginGroup(margin_sym, super.clone() as dynamic, span); |
| + new MarginGroup(margin_sym, super.clone().declarations, span); |
| visit(VisitorBase visitor) => visitor.visitMarginGroup(this); |
| } |
| @@ -881,7 +879,7 @@ class VarUsage extends Expression { |
| VarUsage(this.name, this.defaultValues, SourceSpan span) : super(span); |
| VarUsage clone() { |
| - var clonedValues = []; |
| + var clonedValues = <Expression>[]; |
| for (var expr in defaultValues) { |
| clonedValues.add(expr.clone()); |
| } |