| OLD | NEW |
| 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 library elements; | 5 library elements; |
| 6 | 6 |
| 7 | 7 |
| 8 import '../tree/tree.dart'; | 8 import '../tree/tree.dart'; |
| 9 import '../util/util.dart'; | 9 import '../util/util.dart'; |
| 10 import '../resolution/resolution.dart'; | 10 import '../resolution/resolution.dart'; |
| (...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 620 } | 620 } |
| 621 | 621 |
| 622 // TODO(kasperl): This probably shouldn't be called an element. It's | 622 // TODO(kasperl): This probably shouldn't be called an element. It's |
| 623 // just an interface shared by classes and libraries. | 623 // just an interface shared by classes and libraries. |
| 624 abstract class ScopeContainerElement implements Element { | 624 abstract class ScopeContainerElement implements Element { |
| 625 Element localLookup(String elementName); | 625 Element localLookup(String elementName); |
| 626 | 626 |
| 627 void forEachLocalMember(f(Element element)); | 627 void forEachLocalMember(f(Element element)); |
| 628 } | 628 } |
| 629 | 629 |
| 630 abstract class ClosureContainer implements Element { |
| 631 List<FunctionElement> get nestedClosures; |
| 632 } |
| 633 |
| 630 abstract class CompilationUnitElement extends Element { | 634 abstract class CompilationUnitElement extends Element { |
| 631 Script get script; | 635 Script get script; |
| 632 PartOf get partTag; | 636 PartOf get partTag; |
| 633 | 637 |
| 634 void forEachLocalMember(f(Element element)); | 638 void forEachLocalMember(f(Element element)); |
| 635 void addMember(Element element, DiagnosticListener listener); | 639 void addMember(Element element, DiagnosticListener listener); |
| 636 void setPartOf(PartOf tag, DiagnosticListener listener); | 640 void setPartOf(PartOf tag, DiagnosticListener listener); |
| 637 bool get hasMembers; | 641 bool get hasMembers; |
| 638 | 642 |
| 639 int compareTo(CompilationUnitElement other); | 643 int compareTo(CompilationUnitElement other); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 725 | 729 |
| 726 bool get isResolved; | 730 bool get isResolved; |
| 727 | 731 |
| 728 // TODO(kasperl): Try to get rid of these setters. | 732 // TODO(kasperl): Try to get rid of these setters. |
| 729 void set alias(DartType value); | 733 void set alias(DartType value); |
| 730 void set functionSignature(FunctionSignature value); | 734 void set functionSignature(FunctionSignature value); |
| 731 | 735 |
| 732 void checkCyclicReference(Compiler compiler); | 736 void checkCyclicReference(Compiler compiler); |
| 733 } | 737 } |
| 734 | 738 |
| 735 abstract class VariableElement extends Element { | 739 abstract class VariableElement extends Element implements ClosureContainer { |
| 736 VariableListElement get variables; | 740 VariableListElement get variables; |
| 737 | 741 |
| 738 // TODO(kasperl): Try to get rid of this. | 742 // TODO(kasperl): Try to get rid of this. |
| 739 Expression get cachedNode; | 743 Expression get cachedNode; |
| 740 } | 744 } |
| 741 | 745 |
| 742 abstract class FieldParameterElement extends VariableElement { | 746 abstract class FieldParameterElement extends VariableElement { |
| 743 VariableElement get fieldElement; | 747 VariableElement get fieldElement; |
| 744 } | 748 } |
| 745 | 749 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 778 | 782 |
| 779 void forEachParameter(void function(Element parameter)); | 783 void forEachParameter(void function(Element parameter)); |
| 780 void forEachRequiredParameter(void function(Element parameter)); | 784 void forEachRequiredParameter(void function(Element parameter)); |
| 781 void forEachOptionalParameter(void function(Element parameter)); | 785 void forEachOptionalParameter(void function(Element parameter)); |
| 782 | 786 |
| 783 void orderedForEachParameter(void function(Element parameter)); | 787 void orderedForEachParameter(void function(Element parameter)); |
| 784 | 788 |
| 785 bool isCompatibleWith(FunctionSignature constructorSignature); | 789 bool isCompatibleWith(FunctionSignature constructorSignature); |
| 786 } | 790 } |
| 787 | 791 |
| 788 abstract class FunctionElement extends Element { | 792 abstract class FunctionElement extends Element implements ClosureContainer { |
| 789 FunctionExpression get cachedNode; | 793 FunctionExpression get cachedNode; |
| 790 DartType get type; | 794 DartType get type; |
| 791 FunctionSignature get functionSignature; | 795 FunctionSignature get functionSignature; |
| 792 FunctionElement get redirectionTarget; | 796 FunctionElement get redirectionTarget; |
| 793 FunctionElement get defaultImplementation; | 797 FunctionElement get defaultImplementation; |
| 794 | 798 |
| 795 FunctionElement get patch; | 799 FunctionElement get patch; |
| 796 FunctionElement get origin; | 800 FunctionElement get origin; |
| 797 | 801 |
| 798 bool get isRedirectingFactory; | 802 bool get isRedirectingFactory; |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 983 Token get endToken; | 987 Token get endToken; |
| 984 | 988 |
| 985 // TODO(kasperl): Try to get rid of these. | 989 // TODO(kasperl): Try to get rid of these. |
| 986 void set annotatedElement(Element value); | 990 void set annotatedElement(Element value); |
| 987 void set resolutionState(int value); | 991 void set resolutionState(int value); |
| 988 | 992 |
| 989 MetadataAnnotation ensureResolved(Compiler compiler); | 993 MetadataAnnotation ensureResolved(Compiler compiler); |
| 990 } | 994 } |
| 991 | 995 |
| 992 abstract class VoidElement extends Element {} | 996 abstract class VoidElement extends Element {} |
| OLD | NEW |