OLD | NEW |
1 // This code was auto-generated, is not intended to be edited, and is subject to | 1 // This code was auto-generated, is not intended to be edited, and is subject to |
2 // significant change. Please see the README file for more information. | 2 // significant change. Please see the README file for more information. |
3 library engine.element; | 3 library engine.element; |
4 import 'dart:collection'; | 4 import 'dart:collection'; |
5 import 'java_core.dart'; | 5 import 'java_core.dart'; |
6 import 'java_engine.dart'; | 6 import 'java_engine.dart'; |
7 import 'utilities_collection.dart'; | 7 import 'utilities_collection.dart'; |
8 import 'source.dart'; | 8 import 'source.dart'; |
9 import 'scanner.dart' show Keyword; | 9 import 'scanner.dart' show Keyword; |
10 import 'ast.dart' show Identifier, LibraryIdentifier; | 10 import 'ast.dart' show Identifier, LibraryIdentifier; |
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 * @return `true` if this element is synthetic | 540 * @return `true` if this element is synthetic |
541 */ | 541 */ |
542 bool get isSynthetic; | 542 bool get isSynthetic; |
543 | 543 |
544 /** | 544 /** |
545 * Use the given visitor to visit all of the children of this element. There i
s no guarantee of | 545 * Use the given visitor to visit all of the children of this element. There i
s no guarantee of |
546 * the order in which the children will be visited. | 546 * the order in which the children will be visited. |
547 * | 547 * |
548 * @param visitor the visitor that will be used to visit the children of this
element | 548 * @param visitor the visitor that will be used to visit the children of this
element |
549 */ | 549 */ |
550 void visitChildren(ElementVisitor<Object> visitor); | 550 void visitChildren(ElementVisitor visitor); |
551 } | 551 } |
552 /** | 552 /** |
553 * The interface `ElementAnnotation` defines the behavior of objects representin
g a single | 553 * The interface `ElementAnnotation` defines the behavior of objects representin
g a single |
554 * annotation associated with an element. | 554 * annotation associated with an element. |
555 * | 555 * |
556 * @coverage dart.engine.element | 556 * @coverage dart.engine.element |
557 */ | 557 */ |
558 abstract class ElementAnnotation { | 558 abstract class ElementAnnotation { |
559 | 559 |
560 /** | 560 /** |
561 * Return the element representing the field, variable, or const constructor b
eing used as an | 561 * Return the element representing the field, variable, or const constructor b
eing used as an |
562 * annotation. | 562 * annotation. |
563 * | 563 * |
564 * @return the field, variable, or constructor being used as an annotation | 564 * @return the field, variable, or constructor being used as an annotation |
565 */ | 565 */ |
566 Element get element; | 566 Element get element; |
567 } | 567 } |
568 /** | 568 /** |
569 * The enumeration `ElementKind` defines the various kinds of elements in the el
ement model. | 569 * The enumeration `ElementKind` defines the various kinds of elements in the el
ement model. |
570 * | 570 * |
571 * @coverage dart.engine.element | 571 * @coverage dart.engine.element |
572 */ | 572 */ |
573 class ElementKind implements Enum<ElementKind> { | 573 class ElementKind extends Enum<ElementKind> { |
574 static final ElementKind CLASS = new ElementKind('CLASS', 0, "class"); | 574 static final ElementKind CLASS = new ElementKind('CLASS', 0, "class"); |
575 static final ElementKind COMPILATION_UNIT = new ElementKind('COMPILATION_UNIT'
, 1, "compilation unit"); | 575 static final ElementKind COMPILATION_UNIT = new ElementKind('COMPILATION_UNIT'
, 1, "compilation unit"); |
576 static final ElementKind CONSTRUCTOR = new ElementKind('CONSTRUCTOR', 2, "cons
tructor"); | 576 static final ElementKind CONSTRUCTOR = new ElementKind('CONSTRUCTOR', 2, "cons
tructor"); |
577 static final ElementKind DYNAMIC = new ElementKind('DYNAMIC', 3, "<dynamic>"); | 577 static final ElementKind DYNAMIC = new ElementKind('DYNAMIC', 3, "<dynamic>"); |
578 static final ElementKind EMBEDDED_HTML_SCRIPT = new ElementKind('EMBEDDED_HTML
_SCRIPT', 4, "embedded html script"); | 578 static final ElementKind EMBEDDED_HTML_SCRIPT = new ElementKind('EMBEDDED_HTML
_SCRIPT', 4, "embedded html script"); |
579 static final ElementKind ERROR = new ElementKind('ERROR', 5, "<error>"); | 579 static final ElementKind ERROR = new ElementKind('ERROR', 5, "<error>"); |
580 static final ElementKind EXPORT = new ElementKind('EXPORT', 6, "export directi
ve"); | 580 static final ElementKind EXPORT = new ElementKind('EXPORT', 6, "export directi
ve"); |
581 static final ElementKind EXTERNAL_HTML_SCRIPT = new ElementKind('EXTERNAL_HTML
_SCRIPT', 7, "external html script"); | 581 static final ElementKind EXTERNAL_HTML_SCRIPT = new ElementKind('EXTERNAL_HTML
_SCRIPT', 7, "external html script"); |
582 static final ElementKind FIELD = new ElementKind('FIELD', 8, "field"); | 582 static final ElementKind FIELD = new ElementKind('FIELD', 8, "field"); |
583 static final ElementKind FUNCTION = new ElementKind('FUNCTION', 9, "function")
; | 583 static final ElementKind FUNCTION = new ElementKind('FUNCTION', 9, "function")
; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 METHOD, | 616 METHOD, |
617 NAME, | 617 NAME, |
618 PARAMETER, | 618 PARAMETER, |
619 PREFIX, | 619 PREFIX, |
620 SETTER, | 620 SETTER, |
621 TOP_LEVEL_VARIABLE, | 621 TOP_LEVEL_VARIABLE, |
622 FUNCTION_TYPE_ALIAS, | 622 FUNCTION_TYPE_ALIAS, |
623 TYPE_VARIABLE, | 623 TYPE_VARIABLE, |
624 UNIVERSE]; | 624 UNIVERSE]; |
625 | 625 |
626 /// The name of this enum constant, as declared in the enum declaration. | |
627 final String name; | |
628 | |
629 /// The position in the enum declaration. | |
630 final int ordinal; | |
631 | |
632 /** | 626 /** |
633 * Return the kind of the given element, or [ERROR] if the element is `null`.
This is | 627 * Return the kind of the given element, or [ERROR] if the element is `null`.
This is |
634 * a utility method that can reduce the need for null checks in other places. | 628 * a utility method that can reduce the need for null checks in other places. |
635 * | 629 * |
636 * @param element the element whose kind is to be returned | 630 * @param element the element whose kind is to be returned |
637 * @return the kind of the given element | 631 * @return the kind of the given element |
638 */ | 632 */ |
639 static ElementKind of(Element element) { | 633 static ElementKind of(Element element) { |
640 if (element == null) { | 634 if (element == null) { |
641 return ERROR; | 635 return ERROR; |
642 } | 636 } |
643 return element.kind; | 637 return element.kind; |
644 } | 638 } |
645 | 639 |
646 /** | 640 /** |
647 * The name displayed in the UI for this kind of element. | 641 * The name displayed in the UI for this kind of element. |
648 */ | 642 */ |
649 String _displayName; | 643 String _displayName; |
650 | 644 |
651 /** | 645 /** |
652 * Initialize a newly created element kind to have the given display name. | 646 * Initialize a newly created element kind to have the given display name. |
653 * | 647 * |
654 * @param displayName the name displayed in the UI for this kind of element | 648 * @param displayName the name displayed in the UI for this kind of element |
655 */ | 649 */ |
656 ElementKind(this.name, this.ordinal, String displayName) { | 650 ElementKind(String name, int ordinal, String displayName) : super(name, ordina
l) { |
657 this._displayName = displayName; | 651 this._displayName = displayName; |
658 } | 652 } |
659 | 653 |
660 /** | 654 /** |
661 * Return the name displayed in the UI for this kind of element. | 655 * Return the name displayed in the UI for this kind of element. |
662 * | 656 * |
663 * @return the name of this [ElementKind] to display in UI. | 657 * @return the name of this [ElementKind] to display in UI. |
664 */ | 658 */ |
665 String get displayName => _displayName; | 659 String get displayName => _displayName; |
666 int compareTo(ElementKind other) => ordinal - other.ordinal; | |
667 int get hashCode => ordinal; | |
668 String toString() => name; | |
669 } | 660 } |
670 /** | 661 /** |
671 * The interface `ElementLocation` defines the behavior of objects that represen
t the location | 662 * The interface `ElementLocation` defines the behavior of objects that represen
t the location |
672 * of an element within the element model. | 663 * of an element within the element model. |
673 * | 664 * |
674 * @coverage dart.engine.element | 665 * @coverage dart.engine.element |
675 */ | 666 */ |
676 abstract class ElementLocation { | 667 abstract class ElementLocation { |
677 | 668 |
678 /** | 669 /** |
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1558 R visitFieldFormalParameterElement(FieldFormalParameterElement element) => vis
itParameterElement(element); | 1549 R visitFieldFormalParameterElement(FieldFormalParameterElement element) => vis
itParameterElement(element); |
1559 R visitFunctionElement(FunctionElement element) => visitLocalElement(element); | 1550 R visitFunctionElement(FunctionElement element) => visitLocalElement(element); |
1560 R visitFunctionTypeAliasElement(FunctionTypeAliasElement element) => visitElem
ent(element); | 1551 R visitFunctionTypeAliasElement(FunctionTypeAliasElement element) => visitElem
ent(element); |
1561 R visitHtmlElement(HtmlElement element) => visitElement(element); | 1552 R visitHtmlElement(HtmlElement element) => visitElement(element); |
1562 R visitHtmlScriptElement(HtmlScriptElement element) => visitElement(element); | 1553 R visitHtmlScriptElement(HtmlScriptElement element) => visitElement(element); |
1563 R visitImportElement(ImportElement element) => visitElement(element); | 1554 R visitImportElement(ImportElement element) => visitElement(element); |
1564 R visitLabelElement(LabelElement element) => visitElement(element); | 1555 R visitLabelElement(LabelElement element) => visitElement(element); |
1565 R visitLibraryElement(LibraryElement element) => visitElement(element); | 1556 R visitLibraryElement(LibraryElement element) => visitElement(element); |
1566 R visitLocalElement(LocalElement element) { | 1557 R visitLocalElement(LocalElement element) { |
1567 if (element is LocalVariableElement) { | 1558 if (element is LocalVariableElement) { |
1568 return visitVariableElement((element as LocalVariableElement)); | 1559 return visitVariableElement(element as LocalVariableElement); |
1569 } else if (element is ParameterElement) { | 1560 } else if (element is ParameterElement) { |
1570 return visitVariableElement((element as ParameterElement)); | 1561 return visitVariableElement(element as ParameterElement); |
1571 } else if (element is FunctionElement) { | 1562 } else if (element is FunctionElement) { |
1572 return visitExecutableElement((element as FunctionElement)); | 1563 return visitExecutableElement(element as FunctionElement); |
1573 } | 1564 } |
1574 return null; | 1565 return null; |
1575 } | 1566 } |
1576 R visitLocalVariableElement(LocalVariableElement element) => visitLocalElement
(element); | 1567 R visitLocalVariableElement(LocalVariableElement element) => visitLocalElement
(element); |
1577 R visitMethodElement(MethodElement element) => visitExecutableElement(element)
; | 1568 R visitMethodElement(MethodElement element) => visitExecutableElement(element)
; |
1578 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => visitElement(
element); | 1569 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => visitElement(
element); |
1579 R visitParameterElement(ParameterElement element) => visitLocalElement(element
); | 1570 R visitParameterElement(ParameterElement element) => visitLocalElement(element
); |
1580 R visitPrefixElement(PrefixElement element) => visitElement(element); | 1571 R visitPrefixElement(PrefixElement element) => visitElement(element); |
1581 R visitPropertyAccessorElement(PropertyAccessorElement element) => visitExecut
ableElement(element); | 1572 R visitPropertyAccessorElement(PropertyAccessorElement element) => visitExecut
ableElement(element); |
1582 R visitPropertyInducingElement(PropertyInducingElement element) => visitVariab
leElement(element); | 1573 R visitPropertyInducingElement(PropertyInducingElement element) => visitVariab
leElement(element); |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1712 R visitLocalVariableElement(LocalVariableElement element) => null; | 1703 R visitLocalVariableElement(LocalVariableElement element) => null; |
1713 R visitMethodElement(MethodElement element) => null; | 1704 R visitMethodElement(MethodElement element) => null; |
1714 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => null; | 1705 R visitMultiplyDefinedElement(MultiplyDefinedElement element) => null; |
1715 R visitParameterElement(ParameterElement element) => null; | 1706 R visitParameterElement(ParameterElement element) => null; |
1716 R visitPrefixElement(PrefixElement element) => null; | 1707 R visitPrefixElement(PrefixElement element) => null; |
1717 R visitPropertyAccessorElement(PropertyAccessorElement element) => null; | 1708 R visitPropertyAccessorElement(PropertyAccessorElement element) => null; |
1718 R visitTopLevelVariableElement(TopLevelVariableElement element) => null; | 1709 R visitTopLevelVariableElement(TopLevelVariableElement element) => null; |
1719 R visitTypeVariableElement(TypeVariableElement element) => null; | 1710 R visitTypeVariableElement(TypeVariableElement element) => null; |
1720 } | 1711 } |
1721 /** | 1712 /** |
| 1713 * For AST nodes that could be in both the getter and setter contexts ([IndexExp
ression]s and |
| 1714 * [SimpleIdentifier]s), the additional resolved elements are stored in the AST
node, in an |
| 1715 * [AuxiliaryElements]. Since resolved elements are either statically resolved o
r resolved |
| 1716 * using propagated type information, this class is a wrapper for a pair of |
| 1717 * [ExecutableElement]s, not just a single [ExecutableElement]. |
| 1718 */ |
| 1719 class AuxiliaryElements { |
| 1720 |
| 1721 /** |
| 1722 * The element based on propagated type information, or `null` if the AST stru
cture has not |
| 1723 * been resolved or if this identifier could not be resolved. |
| 1724 */ |
| 1725 ExecutableElement _propagatedElement; |
| 1726 |
| 1727 /** |
| 1728 * The element associated with this identifier based on static type informatio
n, or `null` |
| 1729 * if the AST structure has not been resolved or if this identifier could not
be resolved. |
| 1730 */ |
| 1731 ExecutableElement _staticElement; |
| 1732 |
| 1733 /** |
| 1734 * Create the [AuxiliaryElements] with a static and propagated [ExecutableElem
ent]. |
| 1735 * |
| 1736 * @param staticElement the static element |
| 1737 * @param propagatedElement the propagated element |
| 1738 */ |
| 1739 AuxiliaryElements(ExecutableElement staticElement, ExecutableElement propagate
dElement) { |
| 1740 this._staticElement = staticElement; |
| 1741 this._propagatedElement = propagatedElement; |
| 1742 } |
| 1743 |
| 1744 /** |
| 1745 * Get the propagated element. |
| 1746 */ |
| 1747 ExecutableElement get propagatedElement => _propagatedElement; |
| 1748 |
| 1749 /** |
| 1750 * Get the static element. |
| 1751 */ |
| 1752 ExecutableElement get staticElement => _staticElement; |
| 1753 } |
| 1754 /** |
1722 * Instances of the class `ClassElementImpl` implement a `ClassElement`. | 1755 * Instances of the class `ClassElementImpl` implement a `ClassElement`. |
1723 * | 1756 * |
1724 * @coverage dart.engine.element | 1757 * @coverage dart.engine.element |
1725 */ | 1758 */ |
1726 class ClassElementImpl extends ElementImpl implements ClassElement { | 1759 class ClassElementImpl extends ElementImpl implements ClassElement { |
1727 | 1760 |
1728 /** | 1761 /** |
1729 * An array containing all of the accessors (getters and setters) contained in
this class. | 1762 * An array containing all of the accessors (getters and setters) contained in
this class. |
1730 */ | 1763 */ |
1731 List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_A
RRAY; | 1764 List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_A
RRAY; |
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2122 } | 2155 } |
2123 | 2156 |
2124 /** | 2157 /** |
2125 * Set whether this class is a valid mixin to correspond to the given value. | 2158 * Set whether this class is a valid mixin to correspond to the given value. |
2126 * | 2159 * |
2127 * @param isValidMixin `true` if this class can be used as a mixin | 2160 * @param isValidMixin `true` if this class can be used as a mixin |
2128 */ | 2161 */ |
2129 void set validMixin(bool isValidMixin) { | 2162 void set validMixin(bool isValidMixin) { |
2130 setModifier(Modifier.MIXIN, isValidMixin); | 2163 setModifier(Modifier.MIXIN, isValidMixin); |
2131 } | 2164 } |
2132 void visitChildren(ElementVisitor<Object> visitor) { | 2165 void visitChildren(ElementVisitor visitor) { |
2133 super.visitChildren(visitor); | 2166 super.visitChildren(visitor); |
2134 safelyVisitChildren(_accessors, visitor); | 2167 safelyVisitChildren(_accessors, visitor); |
2135 safelyVisitChildren(_constructors, visitor); | 2168 safelyVisitChildren(_constructors, visitor); |
2136 safelyVisitChildren(_fields, visitor); | 2169 safelyVisitChildren(_fields, visitor); |
2137 safelyVisitChildren(_methods, visitor); | 2170 safelyVisitChildren(_methods, visitor); |
2138 safelyVisitChildren(_typeVariables, visitor); | 2171 safelyVisitChildren(_typeVariables, visitor); |
2139 } | 2172 } |
2140 void appendTo(JavaStringBuilder builder) { | 2173 void appendTo(JavaStringBuilder builder) { |
2141 String name = displayName; | 2174 String name = displayName; |
2142 if (name == null) { | 2175 if (name == null) { |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2362 } | 2395 } |
2363 | 2396 |
2364 /** | 2397 /** |
2365 * Set the URI that is specified by the "part" directive in the enclosing libr
ary. | 2398 * Set the URI that is specified by the "part" directive in the enclosing libr
ary. |
2366 * | 2399 * |
2367 * @param uri the URI that is specified by the "part" directive in the enclosi
ng library. | 2400 * @param uri the URI that is specified by the "part" directive in the enclosi
ng library. |
2368 */ | 2401 */ |
2369 void set uri(String uri2) { | 2402 void set uri(String uri2) { |
2370 this._uri = uri2; | 2403 this._uri = uri2; |
2371 } | 2404 } |
2372 void visitChildren(ElementVisitor<Object> visitor) { | 2405 void visitChildren(ElementVisitor visitor) { |
2373 super.visitChildren(visitor); | 2406 super.visitChildren(visitor); |
2374 safelyVisitChildren(_accessors, visitor); | 2407 safelyVisitChildren(_accessors, visitor); |
2375 safelyVisitChildren(_functions, visitor); | 2408 safelyVisitChildren(_functions, visitor); |
2376 safelyVisitChildren(_typeAliases, visitor); | 2409 safelyVisitChildren(_typeAliases, visitor); |
2377 safelyVisitChildren(_types, visitor); | 2410 safelyVisitChildren(_types, visitor); |
2378 safelyVisitChildren(_variables, visitor); | 2411 safelyVisitChildren(_variables, visitor); |
2379 } | 2412 } |
2380 void appendTo(JavaStringBuilder builder) { | 2413 void appendTo(JavaStringBuilder builder) { |
2381 if (_source == null) { | 2414 if (_source == null) { |
2382 builder.append("{compilation unit}"); | 2415 builder.append("{compilation unit}"); |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2797 * @param isSynthetic `true` if the element is synthetic | 2830 * @param isSynthetic `true` if the element is synthetic |
2798 */ | 2831 */ |
2799 void set synthetic(bool isSynthetic) { | 2832 void set synthetic(bool isSynthetic) { |
2800 setModifier(Modifier.SYNTHETIC, isSynthetic); | 2833 setModifier(Modifier.SYNTHETIC, isSynthetic); |
2801 } | 2834 } |
2802 String toString() { | 2835 String toString() { |
2803 JavaStringBuilder builder = new JavaStringBuilder(); | 2836 JavaStringBuilder builder = new JavaStringBuilder(); |
2804 appendTo(builder); | 2837 appendTo(builder); |
2805 return builder.toString(); | 2838 return builder.toString(); |
2806 } | 2839 } |
2807 void visitChildren(ElementVisitor<Object> visitor) { | 2840 void visitChildren(ElementVisitor visitor) { |
2808 } | 2841 } |
2809 | 2842 |
2810 /** | 2843 /** |
2811 * Append a textual representation of this type to the given builder. | 2844 * Append a textual representation of this type to the given builder. |
2812 * | 2845 * |
2813 * @param builder the builder to which the text is to be appended | 2846 * @param builder the builder to which the text is to be appended |
2814 */ | 2847 */ |
2815 void appendTo(JavaStringBuilder builder) { | 2848 void appendTo(JavaStringBuilder builder) { |
2816 if (_name == null) { | 2849 if (_name == null) { |
2817 builder.append("<unnamed "); | 2850 builder.append("<unnamed "); |
(...skipping 19 matching lines...) Expand all Loading... |
2837 * @return `true` if this element has the given modifier associated with it | 2870 * @return `true` if this element has the given modifier associated with it |
2838 */ | 2871 */ |
2839 bool hasModifier(Modifier modifier) => BooleanArray.get(_modifiers, modifier); | 2872 bool hasModifier(Modifier modifier) => BooleanArray.get(_modifiers, modifier); |
2840 | 2873 |
2841 /** | 2874 /** |
2842 * If the given child is not `null`, use the given visitor to visit it. | 2875 * If the given child is not `null`, use the given visitor to visit it. |
2843 * | 2876 * |
2844 * @param child the child to be visited | 2877 * @param child the child to be visited |
2845 * @param visitor the visitor to be used to visit the child | 2878 * @param visitor the visitor to be used to visit the child |
2846 */ | 2879 */ |
2847 void safelyVisitChild(Element child, ElementVisitor<Object> visitor) { | 2880 void safelyVisitChild(Element child, ElementVisitor visitor) { |
2848 if (child != null) { | 2881 if (child != null) { |
2849 child.accept(visitor); | 2882 child.accept(visitor); |
2850 } | 2883 } |
2851 } | 2884 } |
2852 | 2885 |
2853 /** | 2886 /** |
2854 * Use the given visitor to visit all of the children in the given array. | 2887 * Use the given visitor to visit all of the children in the given array. |
2855 * | 2888 * |
2856 * @param children the children to be visited | 2889 * @param children the children to be visited |
2857 * @param visitor the visitor being used to visit the children | 2890 * @param visitor the visitor being used to visit the children |
2858 */ | 2891 */ |
2859 void safelyVisitChildren(List<Element> children, ElementVisitor<Object> visito
r) { | 2892 void safelyVisitChildren(List<Element> children, ElementVisitor visitor) { |
2860 if (children != null) { | 2893 if (children != null) { |
2861 for (Element child in children) { | 2894 for (Element child in children) { |
2862 child.accept(visitor); | 2895 child.accept(visitor); |
2863 } | 2896 } |
2864 } | 2897 } |
2865 } | 2898 } |
2866 | 2899 |
2867 /** | 2900 /** |
2868 * Set the enclosing element of this element to the given element. | 2901 * Set the enclosing element of this element to the given element. |
2869 * | 2902 * |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3089 | 3122 |
3090 /** | 3123 /** |
3091 * Set the script library defined by the script tag's content. | 3124 * Set the script library defined by the script tag's content. |
3092 * | 3125 * |
3093 * @param scriptLibrary the library or `null` if none | 3126 * @param scriptLibrary the library or `null` if none |
3094 */ | 3127 */ |
3095 void set scriptLibrary(LibraryElementImpl scriptLibrary2) { | 3128 void set scriptLibrary(LibraryElementImpl scriptLibrary2) { |
3096 scriptLibrary2.enclosingElement = this; | 3129 scriptLibrary2.enclosingElement = this; |
3097 this._scriptLibrary = scriptLibrary2; | 3130 this._scriptLibrary = scriptLibrary2; |
3098 } | 3131 } |
3099 void visitChildren(ElementVisitor<Object> visitor) { | 3132 void visitChildren(ElementVisitor visitor) { |
3100 safelyVisitChild(_scriptLibrary, visitor); | 3133 safelyVisitChild(_scriptLibrary, visitor); |
3101 } | 3134 } |
3102 } | 3135 } |
3103 /** | 3136 /** |
3104 * The abstract class `ExecutableElementImpl` implements the behavior common to | 3137 * The abstract class `ExecutableElementImpl` implements the behavior common to |
3105 * `ExecutableElement`s. | 3138 * `ExecutableElement`s. |
3106 * | 3139 * |
3107 * @coverage dart.engine.element | 3140 * @coverage dart.engine.element |
3108 */ | 3141 */ |
3109 abstract class ExecutableElementImpl extends ElementImpl implements ExecutableEl
ement { | 3142 abstract class ExecutableElementImpl extends ElementImpl implements ExecutableEl
ement { |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3247 } | 3280 } |
3248 | 3281 |
3249 /** | 3282 /** |
3250 * Set the type of function defined by this executable element to the given ty
pe. | 3283 * Set the type of function defined by this executable element to the given ty
pe. |
3251 * | 3284 * |
3252 * @param type the type of function defined by this executable element | 3285 * @param type the type of function defined by this executable element |
3253 */ | 3286 */ |
3254 void set type(FunctionType type2) { | 3287 void set type(FunctionType type2) { |
3255 this._type = type2; | 3288 this._type = type2; |
3256 } | 3289 } |
3257 void visitChildren(ElementVisitor<Object> visitor) { | 3290 void visitChildren(ElementVisitor visitor) { |
3258 super.visitChildren(visitor); | 3291 super.visitChildren(visitor); |
3259 safelyVisitChildren(_functions, visitor); | 3292 safelyVisitChildren(_functions, visitor); |
3260 safelyVisitChildren(_labels, visitor); | 3293 safelyVisitChildren(_labels, visitor); |
3261 safelyVisitChildren(_localVariables, visitor); | 3294 safelyVisitChildren(_localVariables, visitor); |
3262 safelyVisitChildren(_parameters, visitor); | 3295 safelyVisitChildren(_parameters, visitor); |
3263 } | 3296 } |
3264 void appendTo(JavaStringBuilder builder) { | 3297 void appendTo(JavaStringBuilder builder) { |
3265 builder.append("("); | 3298 builder.append("("); |
3266 int parameterCount = _parameters.length; | 3299 int parameterCount = _parameters.length; |
3267 for (int i = 0; i < parameterCount; i++) { | 3300 for (int i = 0; i < parameterCount; i++) { |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3642 /** | 3675 /** |
3643 * Set the type variables defined for this type to the given variables without
becoming the parent | 3676 * Set the type variables defined for this type to the given variables without
becoming the parent |
3644 * of the variables. This should only be used by the [TypeResolverVisitor] whe
n creating a | 3677 * of the variables. This should only be used by the [TypeResolverVisitor] whe
n creating a |
3645 * synthetic type alias. | 3678 * synthetic type alias. |
3646 * | 3679 * |
3647 * @param typeVariables the type variables defined for this type | 3680 * @param typeVariables the type variables defined for this type |
3648 */ | 3681 */ |
3649 void shareTypeVariables(List<TypeVariableElement> typeVariables2) { | 3682 void shareTypeVariables(List<TypeVariableElement> typeVariables2) { |
3650 this._typeVariables = typeVariables2; | 3683 this._typeVariables = typeVariables2; |
3651 } | 3684 } |
3652 void visitChildren(ElementVisitor<Object> visitor) { | 3685 void visitChildren(ElementVisitor visitor) { |
3653 super.visitChildren(visitor); | 3686 super.visitChildren(visitor); |
3654 safelyVisitChildren(_parameters, visitor); | 3687 safelyVisitChildren(_parameters, visitor); |
3655 safelyVisitChildren(_typeVariables, visitor); | 3688 safelyVisitChildren(_typeVariables, visitor); |
3656 } | 3689 } |
3657 void appendTo(JavaStringBuilder builder) { | 3690 void appendTo(JavaStringBuilder builder) { |
3658 builder.append("typedef "); | 3691 builder.append("typedef "); |
3659 builder.append(displayName); | 3692 builder.append(displayName); |
3660 int variableCount = _typeVariables.length; | 3693 int variableCount = _typeVariables.length; |
3661 if (variableCount > 0) { | 3694 if (variableCount > 0) { |
3662 builder.append("<"); | 3695 builder.append("<"); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3780 } | 3813 } |
3781 | 3814 |
3782 /** | 3815 /** |
3783 * Set the source that corresponds to this HTML file to the given source. | 3816 * Set the source that corresponds to this HTML file to the given source. |
3784 * | 3817 * |
3785 * @param source the source that corresponds to this HTML file | 3818 * @param source the source that corresponds to this HTML file |
3786 */ | 3819 */ |
3787 void set source(Source source2) { | 3820 void set source(Source source2) { |
3788 this._source = source2; | 3821 this._source = source2; |
3789 } | 3822 } |
3790 void visitChildren(ElementVisitor<Object> visitor) { | 3823 void visitChildren(ElementVisitor visitor) { |
3791 super.visitChildren(visitor); | 3824 super.visitChildren(visitor); |
3792 safelyVisitChildren(_scripts, visitor); | 3825 safelyVisitChildren(_scripts, visitor); |
3793 } | 3826 } |
3794 void appendTo(JavaStringBuilder builder) { | 3827 void appendTo(JavaStringBuilder builder) { |
3795 if (_source == null) { | 3828 if (_source == null) { |
3796 builder.append("{HTML file}"); | 3829 builder.append("{HTML file}"); |
3797 } else { | 3830 } else { |
3798 builder.append(_source.fullName); | 3831 builder.append(_source.fullName); |
3799 } | 3832 } |
3800 } | 3833 } |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3888 } | 3921 } |
3889 | 3922 |
3890 /** | 3923 /** |
3891 * Set the URI that is specified by this directive. | 3924 * Set the URI that is specified by this directive. |
3892 * | 3925 * |
3893 * @param uri the URI that is specified by this directive. | 3926 * @param uri the URI that is specified by this directive. |
3894 */ | 3927 */ |
3895 void set uri(String uri2) { | 3928 void set uri(String uri2) { |
3896 this._uri = uri2; | 3929 this._uri = uri2; |
3897 } | 3930 } |
3898 void visitChildren(ElementVisitor<Object> visitor) { | 3931 void visitChildren(ElementVisitor visitor) { |
3899 super.visitChildren(visitor); | 3932 super.visitChildren(visitor); |
3900 safelyVisitChild(_prefix, visitor); | 3933 safelyVisitChild(_prefix, visitor); |
3901 } | 3934 } |
3902 void appendTo(JavaStringBuilder builder) { | 3935 void appendTo(JavaStringBuilder builder) { |
3903 builder.append("import "); | 3936 builder.append("import "); |
3904 ((_importedLibrary as LibraryElementImpl)).appendTo(builder); | 3937 ((_importedLibrary as LibraryElementImpl)).appendTo(builder); |
3905 } | 3938 } |
3906 String get identifier => ((_importedLibrary as LibraryElementImpl)).identifier
; | 3939 String get identifier => ((_importedLibrary as LibraryElementImpl)).identifier
; |
3907 } | 3940 } |
3908 /** | 3941 /** |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4184 * | 4217 * |
4185 * @param parts the compilation units that are included in this library using
a `part` | 4218 * @param parts the compilation units that are included in this library using
a `part` |
4186 * directive | 4219 * directive |
4187 */ | 4220 */ |
4188 void set parts(List<CompilationUnitElement> parts2) { | 4221 void set parts(List<CompilationUnitElement> parts2) { |
4189 for (CompilationUnitElement compilationUnit in parts2) { | 4222 for (CompilationUnitElement compilationUnit in parts2) { |
4190 ((compilationUnit as CompilationUnitElementImpl)).enclosingElement = this; | 4223 ((compilationUnit as CompilationUnitElementImpl)).enclosingElement = this; |
4191 } | 4224 } |
4192 this._parts = parts2; | 4225 this._parts = parts2; |
4193 } | 4226 } |
4194 void visitChildren(ElementVisitor<Object> visitor) { | 4227 void visitChildren(ElementVisitor visitor) { |
4195 super.visitChildren(visitor); | 4228 super.visitChildren(visitor); |
4196 safelyVisitChild(_definingCompilationUnit, visitor); | 4229 safelyVisitChild(_definingCompilationUnit, visitor); |
4197 safelyVisitChildren(_exports, visitor); | 4230 safelyVisitChildren(_exports, visitor); |
4198 safelyVisitChildren(_imports, visitor); | 4231 safelyVisitChildren(_imports, visitor); |
4199 safelyVisitChildren(_parts, visitor); | 4232 safelyVisitChildren(_parts, visitor); |
4200 } | 4233 } |
4201 | 4234 |
4202 /** | 4235 /** |
4203 * Answer `true` if the receiver directly or indirectly imports the dart:html
libraries. | 4236 * Answer `true` if the receiver directly or indirectly imports the dart:html
libraries. |
4204 * | 4237 * |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4358 builder.append(displayName); | 4391 builder.append(displayName); |
4359 super.appendTo(builder); | 4392 super.appendTo(builder); |
4360 } | 4393 } |
4361 } | 4394 } |
4362 /** | 4395 /** |
4363 * The enumeration `Modifier` defines constants for all of the modifiers defined
by the Dart | 4396 * The enumeration `Modifier` defines constants for all of the modifiers defined
by the Dart |
4364 * language and for a few additional flags that are useful. | 4397 * language and for a few additional flags that are useful. |
4365 * | 4398 * |
4366 * @coverage dart.engine.element | 4399 * @coverage dart.engine.element |
4367 */ | 4400 */ |
4368 class Modifier implements Enum<Modifier> { | 4401 class Modifier extends Enum<Modifier> { |
4369 static final Modifier ABSTRACT = new Modifier('ABSTRACT', 0); | 4402 static final Modifier ABSTRACT = new Modifier('ABSTRACT', 0); |
4370 static final Modifier CONST = new Modifier('CONST', 1); | 4403 static final Modifier CONST = new Modifier('CONST', 1); |
4371 static final Modifier FACTORY = new Modifier('FACTORY', 2); | 4404 static final Modifier FACTORY = new Modifier('FACTORY', 2); |
4372 static final Modifier FINAL = new Modifier('FINAL', 3); | 4405 static final Modifier FINAL = new Modifier('FINAL', 3); |
4373 static final Modifier GETTER = new Modifier('GETTER', 4); | 4406 static final Modifier GETTER = new Modifier('GETTER', 4); |
4374 static final Modifier MIXIN = new Modifier('MIXIN', 5); | 4407 static final Modifier MIXIN = new Modifier('MIXIN', 5); |
4375 static final Modifier REFERENCES_SUPER = new Modifier('REFERENCES_SUPER', 6); | 4408 static final Modifier REFERENCES_SUPER = new Modifier('REFERENCES_SUPER', 6); |
4376 static final Modifier SETTER = new Modifier('SETTER', 7); | 4409 static final Modifier SETTER = new Modifier('SETTER', 7); |
4377 static final Modifier STATIC = new Modifier('STATIC', 8); | 4410 static final Modifier STATIC = new Modifier('STATIC', 8); |
4378 static final Modifier SYNTHETIC = new Modifier('SYNTHETIC', 9); | 4411 static final Modifier SYNTHETIC = new Modifier('SYNTHETIC', 9); |
4379 static final Modifier TYPEDEF = new Modifier('TYPEDEF', 10); | 4412 static final Modifier TYPEDEF = new Modifier('TYPEDEF', 10); |
4380 static final List<Modifier> values = [ | 4413 static final List<Modifier> values = [ |
4381 ABSTRACT, | 4414 ABSTRACT, |
4382 CONST, | 4415 CONST, |
4383 FACTORY, | 4416 FACTORY, |
4384 FINAL, | 4417 FINAL, |
4385 GETTER, | 4418 GETTER, |
4386 MIXIN, | 4419 MIXIN, |
4387 REFERENCES_SUPER, | 4420 REFERENCES_SUPER, |
4388 SETTER, | 4421 SETTER, |
4389 STATIC, | 4422 STATIC, |
4390 SYNTHETIC, | 4423 SYNTHETIC, |
4391 TYPEDEF]; | 4424 TYPEDEF]; |
4392 | 4425 Modifier(String name, int ordinal) : super(name, ordinal); |
4393 /// The name of this enum constant, as declared in the enum declaration. | |
4394 final String name; | |
4395 | |
4396 /// The position in the enum declaration. | |
4397 final int ordinal; | |
4398 Modifier(this.name, this.ordinal); | |
4399 int compareTo(Modifier other) => ordinal - other.ordinal; | |
4400 int get hashCode => ordinal; | |
4401 String toString() => name; | |
4402 } | 4426 } |
4403 /** | 4427 /** |
4404 * Instances of the class `MultiplyDefinedElementImpl` represent a collection of
elements that | 4428 * Instances of the class `MultiplyDefinedElementImpl` represent a collection of
elements that |
4405 * have the same name within the same scope. | 4429 * have the same name within the same scope. |
4406 * | 4430 * |
4407 * @coverage dart.engine.element | 4431 * @coverage dart.engine.element |
4408 */ | 4432 */ |
4409 class MultiplyDefinedElementImpl implements MultiplyDefinedElement { | 4433 class MultiplyDefinedElementImpl implements MultiplyDefinedElement { |
4410 | 4434 |
4411 /** | 4435 /** |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4464 int count = _conflictingElements.length; | 4488 int count = _conflictingElements.length; |
4465 for (int i = 0; i < count; i++) { | 4489 for (int i = 0; i < count; i++) { |
4466 if (i > 0) { | 4490 if (i > 0) { |
4467 builder.append(", "); | 4491 builder.append(", "); |
4468 } | 4492 } |
4469 ((_conflictingElements[i] as ElementImpl)).appendTo(builder); | 4493 ((_conflictingElements[i] as ElementImpl)).appendTo(builder); |
4470 } | 4494 } |
4471 builder.append("]"); | 4495 builder.append("]"); |
4472 return builder.toString(); | 4496 return builder.toString(); |
4473 } | 4497 } |
4474 void visitChildren(ElementVisitor<Object> visitor) { | 4498 void visitChildren(ElementVisitor visitor) { |
4475 } | 4499 } |
4476 | 4500 |
4477 /** | 4501 /** |
4478 * Add the given element to the list of elements. If the element is a multiply
-defined element, | 4502 * Add the given element to the list of elements. If the element is a multiply
-defined element, |
4479 * add all of the conflicting elements that it represents. | 4503 * add all of the conflicting elements that it represents. |
4480 * | 4504 * |
4481 * @param elements the list to which the element(s) are to be added | 4505 * @param elements the list to which the element(s) are to be added |
4482 * @param element the element(s) to be added | 4506 * @param element the element(s) to be added |
4483 */ | 4507 */ |
4484 void add(List<Element> elements, Element element) { | 4508 void add(List<Element> elements, Element element) { |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4624 * length. | 4648 * length. |
4625 * | 4649 * |
4626 * @param offset the offset to the beginning of the visible range for this ele
ment | 4650 * @param offset the offset to the beginning of the visible range for this ele
ment |
4627 * @param length the length of the visible range for this element, or `-1` if
this element | 4651 * @param length the length of the visible range for this element, or `-1` if
this element |
4628 * does not have a visible range | 4652 * does not have a visible range |
4629 */ | 4653 */ |
4630 void setVisibleRange(int offset, int length) { | 4654 void setVisibleRange(int offset, int length) { |
4631 _visibleRangeOffset = offset; | 4655 _visibleRangeOffset = offset; |
4632 _visibleRangeLength = length; | 4656 _visibleRangeLength = length; |
4633 } | 4657 } |
4634 void visitChildren(ElementVisitor<Object> visitor) { | 4658 void visitChildren(ElementVisitor visitor) { |
4635 super.visitChildren(visitor); | 4659 super.visitChildren(visitor); |
4636 safelyVisitChildren(_parameters, visitor); | 4660 safelyVisitChildren(_parameters, visitor); |
4637 } | 4661 } |
4638 void appendTo(JavaStringBuilder builder) { | 4662 void appendTo(JavaStringBuilder builder) { |
4639 String left = ""; | 4663 String left = ""; |
4640 String right = ""; | 4664 String right = ""; |
4641 while (true) { | 4665 while (true) { |
4642 if (parameterKind == ParameterKind.NAMED) { | 4666 if (parameterKind == ParameterKind.NAMED) { |
4643 left = "{"; | 4667 left = "{"; |
4644 right = "}"; | 4668 right = "}"; |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5095 } | 5119 } |
5096 | 5120 |
5097 /** | 5121 /** |
5098 * Set the declared type of this variable to the given type. | 5122 * Set the declared type of this variable to the given type. |
5099 * | 5123 * |
5100 * @param type the declared type of this variable | 5124 * @param type the declared type of this variable |
5101 */ | 5125 */ |
5102 void set type(Type2 type2) { | 5126 void set type(Type2 type2) { |
5103 this._type = type2; | 5127 this._type = type2; |
5104 } | 5128 } |
5105 void visitChildren(ElementVisitor<Object> visitor) { | 5129 void visitChildren(ElementVisitor visitor) { |
5106 super.visitChildren(visitor); | 5130 super.visitChildren(visitor); |
5107 safelyVisitChild(_initializer, visitor); | 5131 safelyVisitChild(_initializer, visitor); |
5108 } | 5132 } |
5109 void appendTo(JavaStringBuilder builder) { | 5133 void appendTo(JavaStringBuilder builder) { |
5110 builder.append(type); | 5134 builder.append(type); |
5111 builder.append(" "); | 5135 builder.append(" "); |
5112 builder.append(displayName); | 5136 builder.append(displayName); |
5113 } | 5137 } |
5114 } | 5138 } |
5115 /** | 5139 /** |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5220 List<ParameterElement> parameterizedParameters = new List<ParameterElement>(
parameterCount); | 5244 List<ParameterElement> parameterizedParameters = new List<ParameterElement>(
parameterCount); |
5221 for (int i = 0; i < parameterCount; i++) { | 5245 for (int i = 0; i < parameterCount; i++) { |
5222 parameterizedParameters[i] = ParameterMember.from(baseParameters[i], defin
ingType); | 5246 parameterizedParameters[i] = ParameterMember.from(baseParameters[i], defin
ingType); |
5223 } | 5247 } |
5224 return parameterizedParameters; | 5248 return parameterizedParameters; |
5225 } | 5249 } |
5226 Type2 get returnType => substituteFor(baseElement.returnType); | 5250 Type2 get returnType => substituteFor(baseElement.returnType); |
5227 FunctionType get type => substituteFor(baseElement.type); | 5251 FunctionType get type => substituteFor(baseElement.type); |
5228 bool get isOperator => baseElement.isOperator; | 5252 bool get isOperator => baseElement.isOperator; |
5229 bool get isStatic => baseElement.isStatic; | 5253 bool get isStatic => baseElement.isStatic; |
5230 void visitChildren(ElementVisitor<Object> visitor) { | 5254 void visitChildren(ElementVisitor visitor) { |
5231 super.visitChildren(visitor); | 5255 super.visitChildren(visitor); |
5232 safelyVisitChildren(baseElement.functions, visitor); | 5256 safelyVisitChildren(baseElement.functions, visitor); |
5233 safelyVisitChildren(labels, visitor); | 5257 safelyVisitChildren(labels, visitor); |
5234 safelyVisitChildren(baseElement.localVariables, visitor); | 5258 safelyVisitChildren(baseElement.localVariables, visitor); |
5235 safelyVisitChildren(parameters, visitor); | 5259 safelyVisitChildren(parameters, visitor); |
5236 } | 5260 } |
5237 } | 5261 } |
5238 /** | 5262 /** |
5239 * Instances of the class `FieldMember` represent a field element defined in a p
arameterized | 5263 * Instances of the class `FieldMember` represent a field element defined in a p
arameterized |
5240 * type where the values of the type parameters are known. | 5264 * type where the values of the type parameters are known. |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5323 String get displayName => _baseElement.displayName; | 5347 String get displayName => _baseElement.displayName; |
5324 ElementKind get kind => _baseElement.kind; | 5348 ElementKind get kind => _baseElement.kind; |
5325 LibraryElement get library => _baseElement.library; | 5349 LibraryElement get library => _baseElement.library; |
5326 ElementLocation get location => _baseElement.location; | 5350 ElementLocation get location => _baseElement.location; |
5327 List<ElementAnnotation> get metadata => _baseElement.metadata; | 5351 List<ElementAnnotation> get metadata => _baseElement.metadata; |
5328 String get name => _baseElement.name; | 5352 String get name => _baseElement.name; |
5329 int get nameOffset => _baseElement.nameOffset; | 5353 int get nameOffset => _baseElement.nameOffset; |
5330 Source get source => _baseElement.source; | 5354 Source get source => _baseElement.source; |
5331 bool isAccessibleIn(LibraryElement library) => _baseElement.isAccessibleIn(lib
rary); | 5355 bool isAccessibleIn(LibraryElement library) => _baseElement.isAccessibleIn(lib
rary); |
5332 bool get isSynthetic => _baseElement.isSynthetic; | 5356 bool get isSynthetic => _baseElement.isSynthetic; |
5333 void visitChildren(ElementVisitor<Object> visitor) { | 5357 void visitChildren(ElementVisitor visitor) { |
5334 } | 5358 } |
5335 | 5359 |
5336 /** | 5360 /** |
5337 * Return the type in which the element is defined. | 5361 * Return the type in which the element is defined. |
5338 * | 5362 * |
5339 * @return the type in which the element is defined | 5363 * @return the type in which the element is defined |
5340 */ | 5364 */ |
5341 ParameterizedType get definingType => _definingType; | 5365 ParameterizedType get definingType => _definingType; |
5342 | 5366 |
5343 /** | 5367 /** |
5344 * If the given child is not `null`, use the given visitor to visit it. | 5368 * If the given child is not `null`, use the given visitor to visit it. |
5345 * | 5369 * |
5346 * @param child the child to be visited | 5370 * @param child the child to be visited |
5347 * @param visitor the visitor to be used to visit the child | 5371 * @param visitor the visitor to be used to visit the child |
5348 */ | 5372 */ |
5349 void safelyVisitChild(Element child, ElementVisitor<Object> visitor) { | 5373 void safelyVisitChild(Element child, ElementVisitor visitor) { |
5350 if (child != null) { | 5374 if (child != null) { |
5351 child.accept(visitor); | 5375 child.accept(visitor); |
5352 } | 5376 } |
5353 } | 5377 } |
5354 | 5378 |
5355 /** | 5379 /** |
5356 * Use the given visitor to visit all of the children in the given array. | 5380 * Use the given visitor to visit all of the children in the given array. |
5357 * | 5381 * |
5358 * @param children the children to be visited | 5382 * @param children the children to be visited |
5359 * @param visitor the visitor being used to visit the children | 5383 * @param visitor the visitor being used to visit the children |
5360 */ | 5384 */ |
5361 void safelyVisitChildren(List<Element> children, ElementVisitor<Object> visito
r) { | 5385 void safelyVisitChildren(List<Element> children, ElementVisitor visitor) { |
5362 if (children != null) { | 5386 if (children != null) { |
5363 for (Element child in children) { | 5387 for (Element child in children) { |
5364 child.accept(visitor); | 5388 child.accept(visitor); |
5365 } | 5389 } |
5366 } | 5390 } |
5367 } | 5391 } |
5368 | 5392 |
5369 /** | 5393 /** |
5370 * Return the type that results from replacing the type parameters in the give
n type with the type | 5394 * Return the type that results from replacing the type parameters in the give
n type with the type |
5371 * arguments. | 5395 * arguments. |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5499 * @param definingType the type in which the element is defined | 5523 * @param definingType the type in which the element is defined |
5500 */ | 5524 */ |
5501 ParameterMember(ParameterElement baseElement, ParameterizedType definingType)
: super(baseElement, definingType); | 5525 ParameterMember(ParameterElement baseElement, ParameterizedType definingType)
: super(baseElement, definingType); |
5502 accept(ElementVisitor visitor) => visitor.visitParameterElement(this); | 5526 accept(ElementVisitor visitor) => visitor.visitParameterElement(this); |
5503 Element getAncestor(Type elementClass) { | 5527 Element getAncestor(Type elementClass) { |
5504 Element element = baseElement.getAncestor(elementClass); | 5528 Element element = baseElement.getAncestor(elementClass); |
5505 ParameterizedType definingType = this.definingType; | 5529 ParameterizedType definingType = this.definingType; |
5506 if (definingType is InterfaceType) { | 5530 if (definingType is InterfaceType) { |
5507 InterfaceType definingInterfaceType = definingType as InterfaceType; | 5531 InterfaceType definingInterfaceType = definingType as InterfaceType; |
5508 if (element is ConstructorElement) { | 5532 if (element is ConstructorElement) { |
5509 return ConstructorMember.from((element as ConstructorElement), definingI
nterfaceType) as Element; | 5533 return ConstructorMember.from(element as ConstructorElement, definingInt
erfaceType) as Element; |
5510 } else if (element is MethodElement) { | 5534 } else if (element is MethodElement) { |
5511 return MethodMember.from((element as MethodElement), definingInterfaceTy
pe) as Element; | 5535 return MethodMember.from(element as MethodElement, definingInterfaceType
) as Element; |
5512 } else if (element is PropertyAccessorElement) { | 5536 } else if (element is PropertyAccessorElement) { |
5513 return PropertyAccessorMember.from((element as PropertyAccessorElement),
definingInterfaceType) as Element; | 5537 return PropertyAccessorMember.from(element as PropertyAccessorElement, d
efiningInterfaceType) as Element; |
5514 } | 5538 } |
5515 } | 5539 } |
5516 return element; | 5540 return element; |
5517 } | 5541 } |
5518 ParameterElement get baseElement => super.baseElement as ParameterElement; | 5542 ParameterElement get baseElement => super.baseElement as ParameterElement; |
5519 SourceRange get defaultValueRange => baseElement.defaultValueRange; | 5543 SourceRange get defaultValueRange => baseElement.defaultValueRange; |
5520 Element get enclosingElement => baseElement.enclosingElement; | 5544 Element get enclosingElement => baseElement.enclosingElement; |
5521 ParameterKind get parameterKind => baseElement.parameterKind; | 5545 ParameterKind get parameterKind => baseElement.parameterKind; |
5522 List<ParameterElement> get parameters { | 5546 List<ParameterElement> get parameters { |
5523 List<ParameterElement> baseParameters = baseElement.parameters; | 5547 List<ParameterElement> baseParameters = baseElement.parameters; |
(...skipping 24 matching lines...) Expand all Loading... |
5548 break; | 5572 break; |
5549 } | 5573 } |
5550 JavaStringBuilder builder = new JavaStringBuilder(); | 5574 JavaStringBuilder builder = new JavaStringBuilder(); |
5551 builder.append(left); | 5575 builder.append(left); |
5552 builder.append(type); | 5576 builder.append(type); |
5553 builder.append(" "); | 5577 builder.append(" "); |
5554 builder.append(baseElement.displayName); | 5578 builder.append(baseElement.displayName); |
5555 builder.append(right); | 5579 builder.append(right); |
5556 return builder.toString(); | 5580 return builder.toString(); |
5557 } | 5581 } |
5558 void visitChildren(ElementVisitor<Object> visitor) { | 5582 void visitChildren(ElementVisitor visitor) { |
5559 super.visitChildren(visitor); | 5583 super.visitChildren(visitor); |
5560 safelyVisitChildren(parameters, visitor); | 5584 safelyVisitChildren(parameters, visitor); |
5561 } | 5585 } |
5562 } | 5586 } |
5563 /** | 5587 /** |
5564 * Instances of the class `PropertyAccessorMember` represent a property accessor
element | 5588 * Instances of the class `PropertyAccessorMember` represent a property accessor
element |
5565 * defined in a parameterized type where the values of the type parameters are k
nown. | 5589 * defined in a parameterized type where the values of the type parameters are k
nown. |
5566 */ | 5590 */ |
5567 class PropertyAccessorMember extends ExecutableMember implements PropertyAccesso
rElement { | 5591 class PropertyAccessorMember extends ExecutableMember implements PropertyAccesso
rElement { |
5568 | 5592 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5600 */ | 5624 */ |
5601 PropertyAccessorMember(PropertyAccessorElement baseElement, InterfaceType defi
ningType) : super(baseElement, definingType); | 5625 PropertyAccessorMember(PropertyAccessorElement baseElement, InterfaceType defi
ningType) : super(baseElement, definingType); |
5602 accept(ElementVisitor visitor) => visitor.visitPropertyAccessorElement(this); | 5626 accept(ElementVisitor visitor) => visitor.visitPropertyAccessorElement(this); |
5603 PropertyAccessorElement get baseElement => super.baseElement as PropertyAccess
orElement; | 5627 PropertyAccessorElement get baseElement => super.baseElement as PropertyAccess
orElement; |
5604 PropertyAccessorElement get correspondingGetter => from(baseElement.correspond
ingGetter, definingType); | 5628 PropertyAccessorElement get correspondingGetter => from(baseElement.correspond
ingGetter, definingType); |
5605 PropertyAccessorElement get correspondingSetter => from(baseElement.correspond
ingSetter, definingType); | 5629 PropertyAccessorElement get correspondingSetter => from(baseElement.correspond
ingSetter, definingType); |
5606 Element get enclosingElement => baseElement.enclosingElement; | 5630 Element get enclosingElement => baseElement.enclosingElement; |
5607 PropertyInducingElement get variable { | 5631 PropertyInducingElement get variable { |
5608 PropertyInducingElement variable = baseElement.variable; | 5632 PropertyInducingElement variable = baseElement.variable; |
5609 if (variable is FieldElement) { | 5633 if (variable is FieldElement) { |
5610 return FieldMember.from(((variable as FieldElement)), definingType); | 5634 return FieldMember.from(variable as FieldElement, definingType); |
5611 } | 5635 } |
5612 return variable; | 5636 return variable; |
5613 } | 5637 } |
5614 bool get isAbstract => baseElement.isAbstract; | 5638 bool get isAbstract => baseElement.isAbstract; |
5615 bool get isGetter => baseElement.isGetter; | 5639 bool get isGetter => baseElement.isGetter; |
5616 bool get isSetter => baseElement.isSetter; | 5640 bool get isSetter => baseElement.isSetter; |
5617 String toString() { | 5641 String toString() { |
5618 PropertyAccessorElement baseElement = this.baseElement; | 5642 PropertyAccessorElement baseElement = this.baseElement; |
5619 List<ParameterElement> parameters = this.parameters; | 5643 List<ParameterElement> parameters = this.parameters; |
5620 FunctionType type = this.type; | 5644 FunctionType type = this.type; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5659 * @param definingType the type in which the element is defined | 5683 * @param definingType the type in which the element is defined |
5660 */ | 5684 */ |
5661 VariableMember(VariableElement baseElement, ParameterizedType definingType) :
super(baseElement, definingType); | 5685 VariableMember(VariableElement baseElement, ParameterizedType definingType) :
super(baseElement, definingType); |
5662 VariableElement get baseElement => super.baseElement as VariableElement; | 5686 VariableElement get baseElement => super.baseElement as VariableElement; |
5663 FunctionElement get initializer { | 5687 FunctionElement get initializer { |
5664 throw new UnsupportedOperationException(); | 5688 throw new UnsupportedOperationException(); |
5665 } | 5689 } |
5666 Type2 get type => substituteFor(baseElement.type); | 5690 Type2 get type => substituteFor(baseElement.type); |
5667 bool get isConst => baseElement.isConst; | 5691 bool get isConst => baseElement.isConst; |
5668 bool get isFinal => baseElement.isFinal; | 5692 bool get isFinal => baseElement.isFinal; |
5669 void visitChildren(ElementVisitor<Object> visitor) { | 5693 void visitChildren(ElementVisitor visitor) { |
5670 super.visitChildren(visitor); | 5694 super.visitChildren(visitor); |
5671 safelyVisitChild(baseElement.initializer, visitor); | 5695 safelyVisitChild(baseElement.initializer, visitor); |
5672 } | 5696 } |
5673 } | 5697 } |
5674 /** | 5698 /** |
5675 * The unique instance of the class `BottomTypeImpl` implements the type `bottom
`. | 5699 * The unique instance of the class `BottomTypeImpl` implements the type `bottom
`. |
5676 * | 5700 * |
5677 * @coverage dart.engine.type | 5701 * @coverage dart.engine.type |
5678 */ | 5702 */ |
5679 class BottomTypeImpl extends TypeImpl { | 5703 class BottomTypeImpl extends TypeImpl { |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6039 } | 6063 } |
6040 FunctionTypeImpl substitute3(List<Type2> argumentTypes) => substitute2(argumen
tTypes, typeArguments); | 6064 FunctionTypeImpl substitute3(List<Type2> argumentTypes) => substitute2(argumen
tTypes, typeArguments); |
6041 FunctionTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterT
ypes) { | 6065 FunctionTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterT
ypes) { |
6042 if (argumentTypes.length != parameterTypes.length) { | 6066 if (argumentTypes.length != parameterTypes.length) { |
6043 throw new IllegalArgumentException("argumentTypes.length (${argumentTypes.
length}) != parameterTypes.length (${parameterTypes.length})"); | 6067 throw new IllegalArgumentException("argumentTypes.length (${argumentTypes.
length}) != parameterTypes.length (${parameterTypes.length})"); |
6044 } | 6068 } |
6045 if (argumentTypes.length == 0) { | 6069 if (argumentTypes.length == 0) { |
6046 return this; | 6070 return this; |
6047 } | 6071 } |
6048 Element element = this.element; | 6072 Element element = this.element; |
6049 FunctionTypeImpl newType = (element is ExecutableElement) ? new FunctionType
Impl.con1((element as ExecutableElement)) : new FunctionTypeImpl.con2((element a
s FunctionTypeAliasElement)); | 6073 FunctionTypeImpl newType = (element is ExecutableElement) ? new FunctionType
Impl.con1(element as ExecutableElement) : new FunctionTypeImpl.con2(element as F
unctionTypeAliasElement); |
6050 newType.typeArguments = TypeImpl.substitute(_typeArguments, argumentTypes, p
arameterTypes); | 6074 newType.typeArguments = TypeImpl.substitute(_typeArguments, argumentTypes, p
arameterTypes); |
6051 return newType; | 6075 return newType; |
6052 } | 6076 } |
6053 void appendTo(JavaStringBuilder builder) { | 6077 void appendTo(JavaStringBuilder builder) { |
6054 List<Type2> normalParameterTypes = this.normalParameterTypes; | 6078 List<Type2> normalParameterTypes = this.normalParameterTypes; |
6055 List<Type2> optionalParameterTypes = this.optionalParameterTypes; | 6079 List<Type2> optionalParameterTypes = this.optionalParameterTypes; |
6056 Map<String, Type2> namedParameterTypes = this.namedParameterTypes; | 6080 Map<String, Type2> namedParameterTypes = this.namedParameterTypes; |
6057 Type2 returnType = this.returnType; | 6081 Type2 returnType = this.returnType; |
6058 builder.append("("); | 6082 builder.append("("); |
6059 bool needsComma = false; | 6083 bool needsComma = false; |
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6491 } | 6515 } |
6492 } | 6516 } |
6493 return false; | 6517 return false; |
6494 } | 6518 } |
6495 bool isMoreSpecificThan(Type2 type) { | 6519 bool isMoreSpecificThan(Type2 type) { |
6496 if (identical(type, DynamicTypeImpl.instance)) { | 6520 if (identical(type, DynamicTypeImpl.instance)) { |
6497 return true; | 6521 return true; |
6498 } else if (type is! InterfaceType) { | 6522 } else if (type is! InterfaceType) { |
6499 return false; | 6523 return false; |
6500 } | 6524 } |
6501 return isMoreSpecificThan2((type as InterfaceType), new Set<ClassElement>())
; | 6525 return isMoreSpecificThan2(type as InterfaceType, new Set<ClassElement>()); |
6502 } | 6526 } |
6503 bool get isObject => element.supertype == null; | 6527 bool get isObject => element.supertype == null; |
6504 bool isSubtypeOf(Type2 type2) { | 6528 bool isSubtypeOf(Type2 type2) { |
6505 if (identical(type2, DynamicTypeImpl.instance)) { | 6529 if (identical(type2, DynamicTypeImpl.instance)) { |
6506 return true; | 6530 return true; |
6507 } else if (type2 is TypeVariableType) { | 6531 } else if (type2 is TypeVariableType) { |
6508 return true; | 6532 return true; |
6509 } else if (type2 is FunctionType) { | 6533 } else if (type2 is FunctionType) { |
6510 ClassElement element = this.element; | 6534 ClassElement element = this.element; |
6511 MethodElement callMethod = element.lookUpMethod("call", element.library); | 6535 MethodElement callMethod = element.lookUpMethod("call", element.library); |
6512 if (callMethod != null) { | 6536 if (callMethod != null) { |
6513 return callMethod.type.isSubtypeOf(type2); | 6537 return callMethod.type.isSubtypeOf(type2); |
6514 } | 6538 } |
6515 return false; | 6539 return false; |
6516 } else if (type2 is! InterfaceType) { | 6540 } else if (type2 is! InterfaceType) { |
6517 return false; | 6541 return false; |
6518 } else if (this == type2) { | 6542 } else if (this == type2) { |
6519 return true; | 6543 return true; |
6520 } | 6544 } |
6521 return isSubtypeOf2((type2 as InterfaceType), new Set<ClassElement>()); | 6545 return isSubtypeOf2(type2 as InterfaceType, new Set<ClassElement>()); |
6522 } | 6546 } |
6523 ConstructorElement lookUpConstructor(String constructorName, LibraryElement li
brary) { | 6547 ConstructorElement lookUpConstructor(String constructorName, LibraryElement li
brary) { |
6524 ConstructorElement constructorElement; | 6548 ConstructorElement constructorElement; |
6525 if (constructorName == null) { | 6549 if (constructorName == null) { |
6526 constructorElement = element.unnamedConstructor; | 6550 constructorElement = element.unnamedConstructor; |
6527 } else { | 6551 } else { |
6528 constructorElement = element.getNamedConstructor(constructorName); | 6552 constructorElement = element.getNamedConstructor(constructorName); |
6529 } | 6553 } |
6530 if (constructorElement == null || !constructorElement.isAccessibleIn(library
)) { | 6554 if (constructorElement == null || !constructorElement.isAccessibleIn(library
)) { |
6531 return null; | 6555 return null; |
(...skipping 997 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7529 } | 7553 } |
7530 /** | 7554 /** |
7531 * The interface `VoidType` defines the behavior of the unique object representi
ng the type | 7555 * The interface `VoidType` defines the behavior of the unique object representi
ng the type |
7532 * `void`. | 7556 * `void`. |
7533 * | 7557 * |
7534 * @coverage dart.engine.type | 7558 * @coverage dart.engine.type |
7535 */ | 7559 */ |
7536 abstract class VoidType implements Type2 { | 7560 abstract class VoidType implements Type2 { |
7537 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes); | 7561 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes); |
7538 } | 7562 } |
OLD | NEW |