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

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

Issue 1832993003: Fix all strong mode errors and warnings. (Closed) Base URL: https://github.com/dart-lang/csslib.git@master
Patch Set: Created 4 years, 8 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
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 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 /** import name specified. */ 414 /** import name specified. */
415 final String import; 415 final String import;
416 416
417 /** Any media queries for this import. */ 417 /** Any media queries for this import. */
418 final List<MediaQuery> mediaQueries; 418 final List<MediaQuery> mediaQueries;
419 419
420 ImportDirective(this.import, this.mediaQueries, SourceSpan span) 420 ImportDirective(this.import, this.mediaQueries, SourceSpan span)
421 : super(span); 421 : super(span);
422 422
423 ImportDirective clone() { 423 ImportDirective clone() {
424 var cloneMediaQueries = []; 424 var cloneMediaQueries = <MediaQuery>[];
425 for (var mediaQuery in mediaQueries) { 425 for (var mediaQuery in mediaQueries) {
426 cloneMediaQueries.add(mediaQuery.clone()); 426 cloneMediaQueries.add(mediaQuery.clone());
427 } 427 }
428 return new ImportDirective(import, cloneMediaQueries, span); 428 return new ImportDirective(import, cloneMediaQueries, span);
429 } 429 }
430 430
431 visit(VisitorBase visitor) => visitor.visitImportDirective(this); 431 visit(VisitorBase visitor) => visitor.visitImportDirective(this);
432 } 432 }
433 433
434 /** 434 /**
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 : super(span); 476 : super(span);
477 477
478 bool get hasMediaType => _mediaType != null; 478 bool get hasMediaType => _mediaType != null;
479 String get mediaType => _mediaType.name; 479 String get mediaType => _mediaType.name;
480 480
481 bool get hasUnary => _mediaUnary != -1; 481 bool get hasUnary => _mediaUnary != -1;
482 String get unary => 482 String get unary =>
483 TokenKind.idToValue(TokenKind.MEDIA_OPERATORS, _mediaUnary).toUpperCase(); 483 TokenKind.idToValue(TokenKind.MEDIA_OPERATORS, _mediaUnary).toUpperCase();
484 484
485 MediaQuery clone() { 485 MediaQuery clone() {
486 var cloneExpressions = []; 486 var cloneExpressions = <MediaExpression>[];
487 for (var expr in expressions) { 487 for (var expr in expressions) {
488 cloneExpressions.add(expr.clone()); 488 cloneExpressions.add(expr.clone());
489 } 489 }
490 return new MediaQuery(_mediaUnary, _mediaType, cloneExpressions, span); 490 return new MediaQuery(_mediaUnary, _mediaType, cloneExpressions, span);
491 } 491 }
492 visit(VisitorBase visitor) => visitor.visitMediaQuery(this); 492 visit(VisitorBase visitor) => visitor.visitMediaQuery(this);
493 } 493 }
494 494
495 class MediaDirective extends Directive { 495 class MediaDirective extends Directive {
496 final List<MediaQuery> mediaQueries; 496 final List<MediaQuery> mediaQueries;
497 final List<RuleSet> rulesets; 497 final List<RuleSet> rulesets;
498 498
499 MediaDirective(this.mediaQueries, this.rulesets, SourceSpan span) 499 MediaDirective(this.mediaQueries, this.rulesets, SourceSpan span)
500 : super(span); 500 : super(span);
501 501
502 MediaDirective clone() { 502 MediaDirective clone() {
503 var cloneQueries = []; 503 var cloneQueries = <MediaQuery>[];
504 for (var mediaQuery in mediaQueries) { 504 for (var mediaQuery in mediaQueries) {
505 cloneQueries.add(mediaQuery.clone()); 505 cloneQueries.add(mediaQuery.clone());
506 } 506 }
507 var cloneRulesets = []; 507 var cloneRulesets = <RuleSet>[];
508 for (var ruleset in rulesets) { 508 for (var ruleset in rulesets) {
509 cloneRulesets.add(ruleset.clone()); 509 cloneRulesets.add(ruleset.clone());
510 } 510 }
511 return new MediaDirective(cloneQueries, cloneRulesets, span); 511 return new MediaDirective(cloneQueries, cloneRulesets, span);
512 } 512 }
513 513
514 visit(VisitorBase visitor) => visitor.visitMediaDirective(this); 514 visit(VisitorBase visitor) => visitor.visitMediaDirective(this);
515 } 515 }
516 516
517 class HostDirective extends Directive { 517 class HostDirective extends Directive {
518 final List<RuleSet> rulesets; 518 final List<RuleSet> rulesets;
519 519
520 HostDirective(this.rulesets, SourceSpan span) : super(span); 520 HostDirective(this.rulesets, SourceSpan span) : super(span);
521 521
522 HostDirective clone() { 522 HostDirective clone() {
523 var cloneRulesets = []; 523 var cloneRulesets = <RuleSet>[];
524 for (var ruleset in rulesets) { 524 for (var ruleset in rulesets) {
525 cloneRulesets.add(ruleset.clone()); 525 cloneRulesets.add(ruleset.clone());
526 } 526 }
527 return new HostDirective(cloneRulesets, span); 527 return new HostDirective(cloneRulesets, span);
528 } 528 }
529 529
530 visit(VisitorBase visitor) => visitor.visitHostDirective(this); 530 visit(VisitorBase visitor) => visitor.visitHostDirective(this);
531 } 531 }
532 532
533 class PageDirective extends Directive { 533 class PageDirective extends Directive {
534 final String _ident; 534 final String _ident;
535 final String _pseudoPage; 535 final String _pseudoPage;
536 final List<DeclarationGroup> _declsMargin; 536 final List<DeclarationGroup> _declsMargin;
537 537
538 PageDirective( 538 PageDirective(
539 this._ident, this._pseudoPage, this._declsMargin, SourceSpan span) 539 this._ident, this._pseudoPage, this._declsMargin, SourceSpan span)
540 : super(span); 540 : super(span);
541 541
542 PageDirective clone() { 542 PageDirective clone() {
543 var cloneDeclsMargin = []; 543 var cloneDeclsMargin = <DeclarationGroup>[];
544 for (var declMargin in _declsMargin) { 544 for (var declMargin in _declsMargin) {
545 cloneDeclsMargin.add(declMargin.clone()); 545 cloneDeclsMargin.add(declMargin.clone());
546 } 546 }
547 return new PageDirective(_ident, _pseudoPage, cloneDeclsMargin, span); 547 return new PageDirective(_ident, _pseudoPage, cloneDeclsMargin, span);
548 } 548 }
549 549
550 visit(VisitorBase visitor) => visitor.visitPageDirective(this); 550 visit(VisitorBase visitor) => visitor.visitPageDirective(this);
551 551
552 bool get hasIdent => _ident != null && _ident.length > 0; 552 bool get hasIdent => _ident != null && _ident.length > 0;
553 bool get hasPseudoPage => _pseudoPage != null && _pseudoPage.length > 0; 553 bool get hasPseudoPage => _pseudoPage != null && _pseudoPage.length > 0;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 final String dartClassName; 628 final String dartClassName;
629 final List<RuleSet> rulesets; 629 final List<RuleSet> rulesets;
630 630
631 StyletDirective(this.dartClassName, this.rulesets, SourceSpan span) 631 StyletDirective(this.dartClassName, this.rulesets, SourceSpan span)
632 : super(span); 632 : super(span);
633 633
634 bool get isBuiltIn => false; 634 bool get isBuiltIn => false;
635 bool get isExtension => true; 635 bool get isExtension => true;
636 636
637 StyletDirective clone() { 637 StyletDirective clone() {
638 var cloneRulesets = []; 638 var cloneRulesets = <RuleSet>[];
639 for (var ruleset in rulesets) { 639 for (var ruleset in rulesets) {
640 cloneRulesets.add(ruleset.clone()); 640 cloneRulesets.add(ruleset.clone());
641 } 641 }
642 return new StyletDirective(dartClassName, cloneRulesets, span); 642 return new StyletDirective(dartClassName, cloneRulesets, span);
643 } 643 }
644 644
645 visit(VisitorBase visitor) => visitor.visitStyletDirective(this); 645 visit(VisitorBase visitor) => visitor.visitStyletDirective(this);
646 } 646 }
647 647
648 class NamespaceDirective extends Directive { 648 class NamespaceDirective extends Directive {
(...skipping 19 matching lines...) Expand all
668 VarDefinitionDirective(this.def, SourceSpan span) : super(span); 668 VarDefinitionDirective(this.def, SourceSpan span) : super(span);
669 669
670 VarDefinitionDirective clone() => 670 VarDefinitionDirective clone() =>
671 new VarDefinitionDirective(def.clone(), span); 671 new VarDefinitionDirective(def.clone(), span);
672 672
673 visit(VisitorBase visitor) => visitor.visitVarDefinitionDirective(this); 673 visit(VisitorBase visitor) => visitor.visitVarDefinitionDirective(this);
674 } 674 }
675 675
676 class MixinDefinition extends Directive { 676 class MixinDefinition extends Directive {
677 final String name; 677 final String name;
678 final List definedArgs; 678 final List<TreeNode> definedArgs;
679 final bool varArgs; 679 final bool varArgs;
680 680
681 MixinDefinition(this.name, this.definedArgs, this.varArgs, SourceSpan span) 681 MixinDefinition(this.name, this.definedArgs, this.varArgs, SourceSpan span)
682 : super(span); 682 : super(span);
683 683
684 MixinDefinition clone() { 684 MixinDefinition clone() {
685 var cloneDefinedArgs = []; 685 var cloneDefinedArgs = <TreeNode>[];
686 for (var definedArg in definedArgs) { 686 for (var definedArg in definedArgs) {
687 cloneDefinedArgs.add(definedArg.clone()); 687 cloneDefinedArgs.add(definedArg.clone());
688 } 688 }
689 return new MixinDefinition(name, cloneDefinedArgs, varArgs, span); 689 return new MixinDefinition(name, cloneDefinedArgs, varArgs, span);
690 } 690 }
691 691
692 visit(VisitorBase visitor) => visitor.visitMixinDefinition(this); 692 visit(VisitorBase visitor) => visitor.visitMixinDefinition(this);
693 } 693 }
694 694
695 /** Support a Sass @mixin. See http://sass-lang.com for description. */ 695 /** Support a Sass @mixin. See http://sass-lang.com for description. */
696 class MixinRulesetDirective extends MixinDefinition { 696 class MixinRulesetDirective extends MixinDefinition {
697 final List rulesets; 697 final List<TreeNode> rulesets;
698 698
699 MixinRulesetDirective(String name, List<VarDefinitionDirective> args, 699 MixinRulesetDirective(String name, List<VarDefinition> args,
700 bool varArgs, this.rulesets, SourceSpan span) 700 bool varArgs, this.rulesets, SourceSpan span)
701 : super(name, args, varArgs, span); 701 : super(name, args, varArgs, span);
702 702
703 MixinRulesetDirective clone() { 703 MixinRulesetDirective clone() {
704 var clonedArgs = []; 704 var clonedArgs = <VarDefinition>[];
705 for (var arg in definedArgs) { 705 for (var arg in definedArgs) {
706 clonedArgs.add(arg.clone()); 706 clonedArgs.add(arg.clone());
707 } 707 }
708 var clonedRulesets = []; 708 var clonedRulesets = <TreeNode>[];
709 for (var ruleset in rulesets) { 709 for (var ruleset in rulesets) {
710 clonedRulesets.add(ruleset.clone()); 710 clonedRulesets.add(ruleset.clone());
711 } 711 }
712 return new MixinRulesetDirective( 712 return new MixinRulesetDirective(
713 name, clonedArgs, varArgs, clonedRulesets, span); 713 name, clonedArgs, varArgs, clonedRulesets, span);
714 } 714 }
715 715
716 visit(VisitorBase visitor) => visitor.visitMixinRulesetDirective(this); 716 visit(VisitorBase visitor) => visitor.visitMixinRulesetDirective(this);
717 } 717 }
718 718
719 class MixinDeclarationDirective extends MixinDefinition { 719 class MixinDeclarationDirective extends MixinDefinition {
720 final DeclarationGroup declarations; 720 final DeclarationGroup declarations;
721 721
722 MixinDeclarationDirective(String name, List<VarDefinitionDirective> args, 722 MixinDeclarationDirective(String name, List<TreeNode> args,
723 bool varArgs, this.declarations, SourceSpan span) 723 bool varArgs, this.declarations, SourceSpan span)
724 : super(name, args, varArgs, span); 724 : super(name, args, varArgs, span);
725 725
726 MixinDeclarationDirective clone() { 726 MixinDeclarationDirective clone() {
727 var clonedArgs = []; 727 var clonedArgs = <TreeNode>[];
728 for (var arg in definedArgs) { 728 for (var arg in definedArgs) {
729 clonedArgs.add(arg.clone()); 729 clonedArgs.add(arg.clone());
730 } 730 }
731 return new MixinDeclarationDirective( 731 return new MixinDeclarationDirective(
732 name, clonedArgs, varArgs, declarations.clone(), span); 732 name, clonedArgs, varArgs, declarations.clone(), span);
733 } 733 }
734 734
735 visit(VisitorBase visitor) => visitor.visitMixinDeclarationDirective(this); 735 visit(VisitorBase visitor) => visitor.visitMixinDeclarationDirective(this);
736 } 736 }
737 737
738 /** To support consuming a SASS mixin @include. */ 738 /** To support consuming a SASS mixin @include. */
739 class IncludeDirective extends Directive { 739 class IncludeDirective extends Directive {
740 final String name; 740 final String name;
741 final List<List<TreeNode>> args; 741 final List<List<Expression>> args;
742 742
743 IncludeDirective(this.name, this.args, SourceSpan span) : super(span); 743 IncludeDirective(this.name, this.args, SourceSpan span) : super(span);
744 744
745 IncludeDirective clone() { 745 IncludeDirective clone() {
746 var cloneArgs = []; 746 var cloneArgs = <List<Expression>>[];
747 for (var arg in args) { 747 for (var arg in args) {
748 for (var term in arg) { 748 cloneArgs.add(arg.map((term) => term.clone()).toList());
Bob Nystrom 2016/03/25 03:11:27 I believe the previous code was wrong here.
749 cloneArgs.add(term.clone());
750 }
751 } 749 }
752 return new IncludeDirective(name, cloneArgs, span); 750 return new IncludeDirective(name, cloneArgs, span);
753 } 751 }
754 752
755 visit(VisitorBase visitor) => visitor.visitIncludeDirective(this); 753 visit(VisitorBase visitor) => visitor.visitIncludeDirective(this);
756 } 754 }
757 755
758 /** To support SASS @content. */ 756 /** To support SASS @content. */
759 class ContentDirective extends Directive { 757 class ContentDirective extends Directive {
760 ContentDirective(SourceSpan span) : super(span); 758 ContentDirective(SourceSpan span) : super(span);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
845 ExtendDeclaration clone() { 843 ExtendDeclaration clone() {
846 var newSelector = selectors.map((s) => s.clone()).toList(); 844 var newSelector = selectors.map((s) => s.clone()).toList();
847 return new ExtendDeclaration(newSelector, span); 845 return new ExtendDeclaration(newSelector, span);
848 } 846 }
849 847
850 visit(VisitorBase visitor) => visitor.visitExtendDeclaration(this); 848 visit(VisitorBase visitor) => visitor.visitExtendDeclaration(this);
851 } 849 }
852 850
853 class DeclarationGroup extends TreeNode { 851 class DeclarationGroup extends TreeNode {
854 /** Can be either Declaration or RuleSet (if nested selector). */ 852 /** Can be either Declaration or RuleSet (if nested selector). */
855 final List declarations; 853 final List<TreeNode> declarations;
856 854
857 DeclarationGroup(this.declarations, SourceSpan span) : super(span); 855 DeclarationGroup(this.declarations, SourceSpan span) : super(span);
858 856
859 DeclarationGroup clone() { 857 DeclarationGroup clone() {
860 var clonedDecls = declarations.map((d) => d.clone()).toList(); 858 var clonedDecls = declarations.map((d) => d.clone()).toList();
861 return new DeclarationGroup(clonedDecls, span); 859 return new DeclarationGroup(clonedDecls, span);
862 } 860 }
863 861
864 visit(VisitorBase visitor) => visitor.visitDeclarationGroup(this); 862 visit(VisitorBase visitor) => visitor.visitDeclarationGroup(this);
865 } 863 }
866 864
867 class MarginGroup extends DeclarationGroup { 865 class MarginGroup extends DeclarationGroup {
868 final int margin_sym; // TokenType for for @margin sym. 866 final int margin_sym; // TokenType for for @margin sym.
869 867
870 MarginGroup(this.margin_sym, List<Declaration> decls, SourceSpan span) 868 MarginGroup(this.margin_sym, List<TreeNode> decls, SourceSpan span)
871 : super(decls, span); 869 : super(decls, span);
872 MarginGroup clone() => 870 MarginGroup clone() =>
873 new MarginGroup(margin_sym, super.clone() as dynamic, span); 871 new MarginGroup(margin_sym, super.clone().declarations, span);
874 visit(VisitorBase visitor) => visitor.visitMarginGroup(this); 872 visit(VisitorBase visitor) => visitor.visitMarginGroup(this);
875 } 873 }
876 874
877 class VarUsage extends Expression { 875 class VarUsage extends Expression {
878 final String name; 876 final String name;
879 final List<Expression> defaultValues; 877 final List<Expression> defaultValues;
880 878
881 VarUsage(this.name, this.defaultValues, SourceSpan span) : super(span); 879 VarUsage(this.name, this.defaultValues, SourceSpan span) : super(span);
882 880
883 VarUsage clone() { 881 VarUsage clone() {
884 var clonedValues = []; 882 var clonedValues = <Expression>[];
885 for (var expr in defaultValues) { 883 for (var expr in defaultValues) {
886 clonedValues.add(expr.clone()); 884 clonedValues.add(expr.clone());
887 } 885 }
888 return new VarUsage(name, clonedValues, span); 886 return new VarUsage(name, clonedValues, span);
889 } 887 }
890 888
891 visit(VisitorBase visitor) => visitor.visitVarUsage(this); 889 visit(VisitorBase visitor) => visitor.visitVarUsage(this);
892 } 890 }
893 891
894 class OperatorSlash extends Expression { 892 class OperatorSlash extends Expression {
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
1434 1432
1435 PaddingExpression._merge( 1433 PaddingExpression._merge(
1436 PaddingExpression x, PaddingExpression y, SourceSpan span) 1434 PaddingExpression x, PaddingExpression y, SourceSpan span)
1437 : super(DartStyleExpression.paddingStyle, span, 1435 : super(DartStyleExpression.paddingStyle, span,
1438 new BoxEdge.merge(x.box, y.box)); 1436 new BoxEdge.merge(x.box, y.box));
1439 1437
1440 PaddingExpression clone() => new PaddingExpression(span, 1438 PaddingExpression clone() => new PaddingExpression(span,
1441 top: box.top, right: box.right, bottom: box.bottom, left: box.left); 1439 top: box.top, right: box.right, bottom: box.bottom, left: box.left);
1442 visit(VisitorBase visitor) => visitor.visitPaddingExpression(this); 1440 visit(VisitorBase visitor) => visitor.visitPaddingExpression(this);
1443 } 1441 }
OLDNEW
« lib/src/property.dart ('K') | « lib/src/tokenizer.dart ('k') | pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698