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

Side by Side Diff: pkg/analyzer_experimental/lib/src/generated/element.dart

Issue 16611004: Improve java2dart code style - relax 'don't reference variable name in its initializer'. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
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 'source.dart'; 7 import 'source.dart';
8 import 'scanner.dart' show Keyword; 8 import 'scanner.dart' show Keyword;
9 import 'ast.dart' show Identifier, LibraryIdentifier; 9 import 'ast.dart' show Identifier, LibraryIdentifier;
10 import 'sdk.dart' show DartSdk; 10 import 'sdk.dart' show DartSdk;
(...skipping 1672 matching lines...) Expand 10 before | Expand all | Expand 10 after
1683 if (javaSetAdd(visitedClasses, currentElement)) { 1683 if (javaSetAdd(visitedClasses, currentElement)) {
1684 for (FieldElement field in currentElement.fields) { 1684 for (FieldElement field in currentElement.fields) {
1685 if (!field.isFinal() && !field.isConst() && !field.isStatic() && !fiel d.isSynthetic()) { 1685 if (!field.isFinal() && !field.isConst() && !field.isStatic() && !fiel d.isSynthetic()) {
1686 return true; 1686 return true;
1687 } 1687 }
1688 } 1688 }
1689 for (InterfaceType mixinType in currentElement.mixins) { 1689 for (InterfaceType mixinType in currentElement.mixins) {
1690 ClassElement mixinElement = mixinType.element; 1690 ClassElement mixinElement = mixinType.element;
1691 classesToVisit.add(mixinElement); 1691 classesToVisit.add(mixinElement);
1692 } 1692 }
1693 InterfaceType supertype2 = currentElement.supertype; 1693 InterfaceType supertype = currentElement.supertype;
1694 if (supertype2 != null) { 1694 if (supertype != null) {
1695 ClassElement superElement = supertype2.element; 1695 ClassElement superElement = supertype.element;
1696 if (superElement != null) { 1696 if (superElement != null) {
1697 classesToVisit.add(superElement); 1697 classesToVisit.add(superElement);
1698 } 1698 }
1699 } 1699 }
1700 } 1700 }
1701 } 1701 }
1702 return false; 1702 return false;
1703 } 1703 }
1704 bool hasReferenceToSuper() => hasModifier(Modifier.REFERENCES_SUPER); 1704 bool hasReferenceToSuper() => hasModifier(Modifier.REFERENCES_SUPER);
1705 bool isAbstract() => hasModifier(Modifier.ABSTRACT); 1705 bool isAbstract() => hasModifier(Modifier.ABSTRACT);
(...skipping 10 matching lines...) Expand all
1716 } 1716 }
1717 for (InterfaceType mixin in currentElement.mixins) { 1717 for (InterfaceType mixin in currentElement.mixins) {
1718 ClassElement mixinElement = mixin.element; 1718 ClassElement mixinElement = mixin.element;
1719 if (mixinElement != null) { 1719 if (mixinElement != null) {
1720 element = mixinElement.getGetter(getterName); 1720 element = mixinElement.getGetter(getterName);
1721 if (element != null && element.isAccessibleIn(library)) { 1721 if (element != null && element.isAccessibleIn(library)) {
1722 return element; 1722 return element;
1723 } 1723 }
1724 } 1724 }
1725 } 1725 }
1726 InterfaceType supertype2 = currentElement.supertype; 1726 InterfaceType supertype = currentElement.supertype;
1727 if (supertype2 == null) { 1727 if (supertype == null) {
1728 return null; 1728 return null;
1729 } 1729 }
1730 currentElement = supertype2.element; 1730 currentElement = supertype.element;
1731 } 1731 }
1732 return null; 1732 return null;
1733 } 1733 }
1734 MethodElement lookUpMethod(String methodName, LibraryElement library) { 1734 MethodElement lookUpMethod(String methodName, LibraryElement library) {
1735 Set<ClassElement> visitedClasses = new Set<ClassElement>(); 1735 Set<ClassElement> visitedClasses = new Set<ClassElement>();
1736 ClassElement currentElement = this; 1736 ClassElement currentElement = this;
1737 while (currentElement != null && !visitedClasses.contains(currentElement)) { 1737 while (currentElement != null && !visitedClasses.contains(currentElement)) {
1738 javaSetAdd(visitedClasses, currentElement); 1738 javaSetAdd(visitedClasses, currentElement);
1739 MethodElement element = currentElement.getMethod(methodName); 1739 MethodElement element = currentElement.getMethod(methodName);
1740 if (element != null && element.isAccessibleIn(library)) { 1740 if (element != null && element.isAccessibleIn(library)) {
1741 return element; 1741 return element;
1742 } 1742 }
1743 for (InterfaceType mixin in currentElement.mixins) { 1743 for (InterfaceType mixin in currentElement.mixins) {
1744 ClassElement mixinElement = mixin.element; 1744 ClassElement mixinElement = mixin.element;
1745 if (mixinElement != null) { 1745 if (mixinElement != null) {
1746 element = mixinElement.getMethod(methodName); 1746 element = mixinElement.getMethod(methodName);
1747 if (element != null && element.isAccessibleIn(library)) { 1747 if (element != null && element.isAccessibleIn(library)) {
1748 return element; 1748 return element;
1749 } 1749 }
1750 } 1750 }
1751 } 1751 }
1752 InterfaceType supertype2 = currentElement.supertype; 1752 InterfaceType supertype = currentElement.supertype;
1753 if (supertype2 == null) { 1753 if (supertype == null) {
1754 return null; 1754 return null;
1755 } 1755 }
1756 currentElement = supertype2.element; 1756 currentElement = supertype.element;
1757 } 1757 }
1758 return null; 1758 return null;
1759 } 1759 }
1760 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library ) { 1760 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library ) {
1761 Set<ClassElement> visitedClasses = new Set<ClassElement>(); 1761 Set<ClassElement> visitedClasses = new Set<ClassElement>();
1762 ClassElement currentElement = this; 1762 ClassElement currentElement = this;
1763 while (currentElement != null && !visitedClasses.contains(currentElement)) { 1763 while (currentElement != null && !visitedClasses.contains(currentElement)) {
1764 javaSetAdd(visitedClasses, currentElement); 1764 javaSetAdd(visitedClasses, currentElement);
1765 PropertyAccessorElement element = currentElement.getSetter(setterName); 1765 PropertyAccessorElement element = currentElement.getSetter(setterName);
1766 if (element != null && element.isAccessibleIn(library)) { 1766 if (element != null && element.isAccessibleIn(library)) {
1767 return element; 1767 return element;
1768 } 1768 }
1769 for (InterfaceType mixin in currentElement.mixins) { 1769 for (InterfaceType mixin in currentElement.mixins) {
1770 ClassElement mixinElement = mixin.element; 1770 ClassElement mixinElement = mixin.element;
1771 if (mixinElement != null) { 1771 if (mixinElement != null) {
1772 element = mixinElement.getSetter(setterName); 1772 element = mixinElement.getSetter(setterName);
1773 if (element != null && element.isAccessibleIn(library)) { 1773 if (element != null && element.isAccessibleIn(library)) {
1774 return element; 1774 return element;
1775 } 1775 }
1776 } 1776 }
1777 } 1777 }
1778 InterfaceType supertype2 = currentElement.supertype; 1778 InterfaceType supertype = currentElement.supertype;
1779 if (supertype2 == null) { 1779 if (supertype == null) {
1780 return null; 1780 return null;
1781 } 1781 }
1782 currentElement = supertype2.element; 1782 currentElement = supertype.element;
1783 } 1783 }
1784 return null; 1784 return null;
1785 } 1785 }
1786 1786
1787 /** 1787 /**
1788 * Set whether this class is abstract to correspond to the given value. 1788 * Set whether this class is abstract to correspond to the given value.
1789 * @param isAbstract {@code true} if the class is abstract 1789 * @param isAbstract {@code true} if the class is abstract
1790 */ 1790 */
1791 void set abstract(bool isAbstract) { 1791 void set abstract(bool isAbstract) {
1792 setModifier(Modifier.ABSTRACT, isAbstract); 1792 setModifier(Modifier.ABSTRACT, isAbstract);
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1943 supertypes.add(currentType); 1943 supertypes.add(currentType);
1944 } 1944 }
1945 InterfaceType supertype = currentType.superclass; 1945 InterfaceType supertype = currentType.superclass;
1946 if (supertype != null) { 1946 if (supertype != null) {
1947 typesToVisit.add(supertype); 1947 typesToVisit.add(supertype);
1948 } 1948 }
1949 for (InterfaceType type in currentElement.interfaces) { 1949 for (InterfaceType type in currentElement.interfaces) {
1950 typesToVisit.add(type); 1950 typesToVisit.add(type);
1951 } 1951 }
1952 for (InterfaceType type in currentElement.mixins) { 1952 for (InterfaceType type in currentElement.mixins) {
1953 ClassElement element2 = type.element; 1953 ClassElement element = type.element;
1954 if (!visitedClasses.contains(element2)) { 1954 if (!visitedClasses.contains(element)) {
1955 supertypes.add(type); 1955 supertypes.add(type);
1956 } 1956 }
1957 } 1957 }
1958 } 1958 }
1959 } 1959 }
1960 } 1960 }
1961 } 1961 }
1962 /** 1962 /**
1963 * Instances of the class {@code CompilationUnitElementImpl} implement a{@link C ompilationUnitElement}. 1963 * Instances of the class {@code CompilationUnitElementImpl} implement a{@link C ompilationUnitElement}.
1964 * @coverage dart.engine.element 1964 * @coverage dart.engine.element
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
2401 * declaration of this element 2401 * declaration of this element
2402 */ 2402 */
2403 ElementImpl.con2(String name2, int nameOffset2) { 2403 ElementImpl.con2(String name2, int nameOffset2) {
2404 _jtd_constructor_195_impl(name2, nameOffset2); 2404 _jtd_constructor_195_impl(name2, nameOffset2);
2405 } 2405 }
2406 _jtd_constructor_195_impl(String name2, int nameOffset2) { 2406 _jtd_constructor_195_impl(String name2, int nameOffset2) {
2407 this._name = StringUtilities.intern(name2); 2407 this._name = StringUtilities.intern(name2);
2408 this._nameOffset = nameOffset2; 2408 this._nameOffset = nameOffset2;
2409 } 2409 }
2410 String computeDocumentationComment() { 2410 String computeDocumentationComment() {
2411 AnalysisContext context2 = context; 2411 AnalysisContext context = this.context;
2412 if (context2 == null) { 2412 if (context == null) {
2413 return null; 2413 return null;
2414 } 2414 }
2415 return context2.computeDocumentationComment(this); 2415 return context.computeDocumentationComment(this);
2416 } 2416 }
2417 bool operator ==(Object object) => object != null && object.runtimeType == run timeType && ((object as Element)).location == location; 2417 bool operator ==(Object object) => object != null && object.runtimeType == run timeType && ((object as Element)).location == location;
2418 Element getAncestor(Type elementClass) { 2418 Element getAncestor(Type elementClass) {
2419 Element ancestor = _enclosingElement; 2419 Element ancestor = _enclosingElement;
2420 while (ancestor != null && !isInstanceOf(ancestor, elementClass)) { 2420 while (ancestor != null && !isInstanceOf(ancestor, elementClass)) {
2421 ancestor = ancestor.enclosingElement; 2421 ancestor = ancestor.enclosingElement;
2422 } 2422 }
2423 return ancestor as Element; 2423 return ancestor as Element;
2424 } 2424 }
2425 2425
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
2628 return JavaArrays.equals(_components, location._components); 2628 return JavaArrays.equals(_components, location._components);
2629 } 2629 }
2630 2630
2631 /** 2631 /**
2632 * Return the path to the element whose location is represented by this object . 2632 * Return the path to the element whose location is represented by this object .
2633 * @return the path to the element whose location is represented by this objec t 2633 * @return the path to the element whose location is represented by this objec t
2634 */ 2634 */
2635 List<String> get components => _components; 2635 List<String> get components => _components;
2636 String get encoding { 2636 String get encoding {
2637 JavaStringBuilder builder = new JavaStringBuilder(); 2637 JavaStringBuilder builder = new JavaStringBuilder();
2638 int length2 = _components.length; 2638 int length = _components.length;
2639 for (int i = 0; i < length2; i++) { 2639 for (int i = 0; i < length; i++) {
2640 if (i > 0) { 2640 if (i > 0) {
2641 builder.appendChar(_SEPARATOR_CHAR); 2641 builder.appendChar(_SEPARATOR_CHAR);
2642 } 2642 }
2643 encode(builder, _components[i]); 2643 encode(builder, _components[i]);
2644 } 2644 }
2645 return builder.toString(); 2645 return builder.toString();
2646 } 2646 }
2647 int get hashCode => JavaArrays.makeHashCode(_components); 2647 int get hashCode => JavaArrays.makeHashCode(_components);
2648 String toString() => encoding; 2648 String toString() => encoding;
2649 2649
2650 /** 2650 /**
2651 * Decode the encoded form of a location into an array of components. 2651 * Decode the encoded form of a location into an array of components.
2652 * @param encoding the encoded form of a location 2652 * @param encoding the encoded form of a location
2653 * @return the components that were encoded 2653 * @return the components that were encoded
2654 */ 2654 */
2655 List<String> decode(String encoding) { 2655 List<String> decode(String encoding) {
2656 List<String> components = new List<String>(); 2656 List<String> components = new List<String>();
2657 JavaStringBuilder builder = new JavaStringBuilder(); 2657 JavaStringBuilder builder = new JavaStringBuilder();
2658 int index = 0; 2658 int index = 0;
2659 int length2 = encoding.length; 2659 int length = encoding.length;
2660 while (index < length2) { 2660 while (index < length) {
2661 int currentChar = encoding.codeUnitAt(index); 2661 int currentChar = encoding.codeUnitAt(index);
2662 if (currentChar == _SEPARATOR_CHAR) { 2662 if (currentChar == _SEPARATOR_CHAR) {
2663 if (index + 1 < length2 && encoding.codeUnitAt(index + 1) == _SEPARATOR_ CHAR) { 2663 if (index + 1 < length && encoding.codeUnitAt(index + 1) == _SEPARATOR_C HAR) {
2664 builder.appendChar(_SEPARATOR_CHAR); 2664 builder.appendChar(_SEPARATOR_CHAR);
2665 index += 2; 2665 index += 2;
2666 } else { 2666 } else {
2667 components.add(builder.toString()); 2667 components.add(builder.toString());
2668 builder.length = 0; 2668 builder.length = 0;
2669 index++; 2669 index++;
2670 } 2670 }
2671 } else { 2671 } else {
2672 builder.appendChar(currentChar); 2672 builder.appendChar(currentChar);
2673 index++; 2673 index++;
2674 } 2674 }
2675 } 2675 }
2676 if (builder.length > 0) { 2676 if (builder.length > 0) {
2677 components.add(builder.toString()); 2677 components.add(builder.toString());
2678 } 2678 }
2679 return new List.from(components); 2679 return new List.from(components);
2680 } 2680 }
2681 2681
2682 /** 2682 /**
2683 * Append an encoded form of the given component to the given builder. 2683 * Append an encoded form of the given component to the given builder.
2684 * @param builder the builder to which the encoded component is to be appended 2684 * @param builder the builder to which the encoded component is to be appended
2685 * @param component the component to be appended to the builder 2685 * @param component the component to be appended to the builder
2686 */ 2686 */
2687 void encode(JavaStringBuilder builder, String component) { 2687 void encode(JavaStringBuilder builder, String component) {
2688 int length2 = component.length; 2688 int length = component.length;
2689 for (int i = 0; i < length2; i++) { 2689 for (int i = 0; i < length; i++) {
2690 int currentChar = component.codeUnitAt(i); 2690 int currentChar = component.codeUnitAt(i);
2691 if (currentChar == _SEPARATOR_CHAR) { 2691 if (currentChar == _SEPARATOR_CHAR) {
2692 builder.appendChar(_SEPARATOR_CHAR); 2692 builder.appendChar(_SEPARATOR_CHAR);
2693 } 2693 }
2694 builder.appendChar(currentChar); 2694 builder.appendChar(currentChar);
2695 } 2695 }
2696 } 2696 }
2697 } 2697 }
2698 /** 2698 /**
2699 * Instances of the class {@code EmbeddedHtmlScriptElementImpl} implement an{@li nk EmbeddedHtmlScriptElement}. 2699 * Instances of the class {@code EmbeddedHtmlScriptElementImpl} implement an{@li nk EmbeddedHtmlScriptElement}.
(...skipping 939 matching lines...) Expand 10 before | Expand all | Expand 10 after
3639 } 3639 }
3640 return new List.from(libraries); 3640 return new List.from(libraries);
3641 } 3641 }
3642 List<ImportElement> get imports => _imports; 3642 List<ImportElement> get imports => _imports;
3643 ElementKind get kind => ElementKind.LIBRARY; 3643 ElementKind get kind => ElementKind.LIBRARY;
3644 LibraryElement get library => this; 3644 LibraryElement get library => this;
3645 List<CompilationUnitElement> get parts => _parts; 3645 List<CompilationUnitElement> get parts => _parts;
3646 List<PrefixElement> get prefixes { 3646 List<PrefixElement> get prefixes {
3647 Set<PrefixElement> prefixes = new Set<PrefixElement>(); 3647 Set<PrefixElement> prefixes = new Set<PrefixElement>();
3648 for (ImportElement element in _imports) { 3648 for (ImportElement element in _imports) {
3649 PrefixElement prefix2 = element.prefix; 3649 PrefixElement prefix = element.prefix;
3650 if (prefix2 != null) { 3650 if (prefix != null) {
3651 javaSetAdd(prefixes, prefix2); 3651 javaSetAdd(prefixes, prefix);
3652 } 3652 }
3653 } 3653 }
3654 return new List.from(prefixes); 3654 return new List.from(prefixes);
3655 } 3655 }
3656 Source get source { 3656 Source get source {
3657 if (_definingCompilationUnit == null) { 3657 if (_definingCompilationUnit == null) {
3658 return null; 3658 return null;
3659 } 3659 }
3660 return _definingCompilationUnit.source; 3660 return _definingCompilationUnit.source;
3661 } 3661 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
3708 this._exports = exports2; 3708 this._exports = exports2;
3709 } 3709 }
3710 3710
3711 /** 3711 /**
3712 * Set the specifications of all of the imports defined in this library to the given array. 3712 * Set the specifications of all of the imports defined in this library to the given array.
3713 * @param imports the specifications of all of the imports defined in this lib rary 3713 * @param imports the specifications of all of the imports defined in this lib rary
3714 */ 3714 */
3715 void set imports(List<ImportElement> imports2) { 3715 void set imports(List<ImportElement> imports2) {
3716 for (ImportElement importElement in imports2) { 3716 for (ImportElement importElement in imports2) {
3717 ((importElement as ImportElementImpl)).enclosingElement = this; 3717 ((importElement as ImportElementImpl)).enclosingElement = this;
3718 PrefixElementImpl prefix2 = importElement.prefix as PrefixElementImpl; 3718 PrefixElementImpl prefix = importElement.prefix as PrefixElementImpl;
3719 if (prefix2 != null) { 3719 if (prefix != null) {
3720 prefix2.enclosingElement = this; 3720 prefix.enclosingElement = this;
3721 } 3721 }
3722 } 3722 }
3723 this._imports = imports2; 3723 this._imports = imports2;
3724 } 3724 }
3725 3725
3726 /** 3726 /**
3727 * Set the compilation units that are included in this library using a {@code part} directive. 3727 * Set the compilation units that are included in this library using a {@code part} directive.
3728 * @param parts the compilation units that are included in this library using a {@code part}directive 3728 * @param parts the compilation units that are included in this library using a {@code part}directive
3729 */ 3729 */
3730 void set parts(List<CompilationUnitElement> parts2) { 3730 void set parts(List<CompilationUnitElement> parts2) {
(...skipping 13 matching lines...) Expand all
3744 /** 3744 /**
3745 * Answer {@code true} if the receiver directly or indirectly imports the dart :html libraries. 3745 * Answer {@code true} if the receiver directly or indirectly imports the dart :html libraries.
3746 * @return {@code true} if the receiver directly or indirectly imports the dar t:html libraries 3746 * @return {@code true} if the receiver directly or indirectly imports the dar t:html libraries
3747 */ 3747 */
3748 bool isOrImportsBrowserLibrary() { 3748 bool isOrImportsBrowserLibrary() {
3749 List<LibraryElement> visited = new List<LibraryElement>(); 3749 List<LibraryElement> visited = new List<LibraryElement>();
3750 Source htmlLibSource = _context.sourceFactory.forUri(DartSdk.DART_HTML); 3750 Source htmlLibSource = _context.sourceFactory.forUri(DartSdk.DART_HTML);
3751 visited.add(this); 3751 visited.add(this);
3752 for (int index = 0; index < visited.length; index++) { 3752 for (int index = 0; index < visited.length; index++) {
3753 LibraryElement library = visited[index]; 3753 LibraryElement library = visited[index];
3754 Source source2 = library.definingCompilationUnit.source; 3754 Source source = library.definingCompilationUnit.source;
3755 if (source2 == htmlLibSource) { 3755 if (source == htmlLibSource) {
3756 return true; 3756 return true;
3757 } 3757 }
3758 for (LibraryElement importedLibrary in library.importedLibraries) { 3758 for (LibraryElement importedLibrary in library.importedLibraries) {
3759 if (!visited.contains(importedLibrary)) { 3759 if (!visited.contains(importedLibrary)) {
3760 visited.add(importedLibrary); 3760 visited.add(importedLibrary);
3761 } 3761 }
3762 } 3762 }
3763 for (LibraryElement exportedLibrary in library.exportedLibraries) { 3763 for (LibraryElement exportedLibrary in library.exportedLibraries) {
3764 if (!visited.contains(exportedLibrary)) { 3764 if (!visited.contains(exportedLibrary)) {
3765 visited.add(exportedLibrary); 3765 visited.add(exportedLibrary);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
3852 */ 3852 */
3853 MethodElementImpl.con2(String name, int nameOffset) : super.con2(name, nameOff set) { 3853 MethodElementImpl.con2(String name, int nameOffset) : super.con2(name, nameOff set) {
3854 _jtd_constructor_218_impl(name, nameOffset); 3854 _jtd_constructor_218_impl(name, nameOffset);
3855 } 3855 }
3856 _jtd_constructor_218_impl(String name, int nameOffset) { 3856 _jtd_constructor_218_impl(String name, int nameOffset) {
3857 } 3857 }
3858 accept(ElementVisitor visitor) => visitor.visitMethodElement(this); 3858 accept(ElementVisitor visitor) => visitor.visitMethodElement(this);
3859 ClassElement get enclosingElement => super.enclosingElement as ClassElement; 3859 ClassElement get enclosingElement => super.enclosingElement as ClassElement;
3860 ElementKind get kind => ElementKind.METHOD; 3860 ElementKind get kind => ElementKind.METHOD;
3861 String get name { 3861 String get name {
3862 String name2 = super.name; 3862 String name = super.name;
3863 if (isOperator() && name2 == "-") { 3863 if (isOperator() && name == "-") {
3864 if (parameters.length == 0) { 3864 if (parameters.length == 0) {
3865 return "unary-"; 3865 return "unary-";
3866 } 3866 }
3867 } 3867 }
3868 return super.name; 3868 return super.name;
3869 } 3869 }
3870 bool isAbstract() => hasModifier(Modifier.ABSTRACT); 3870 bool isAbstract() => hasModifier(Modifier.ABSTRACT);
3871 bool isOperator() { 3871 bool isOperator() {
3872 String name = displayName; 3872 String name = displayName;
3873 if (name.isEmpty) { 3873 if (name.isEmpty) {
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
4624 */ 4624 */
4625 ConstructorMember(ConstructorElement baseElement, InterfaceType definingType) : super(baseElement, definingType) { 4625 ConstructorMember(ConstructorElement baseElement, InterfaceType definingType) : super(baseElement, definingType) {
4626 } 4626 }
4627 accept(ElementVisitor visitor) => visitor.visitConstructorElement(this); 4627 accept(ElementVisitor visitor) => visitor.visitConstructorElement(this);
4628 ConstructorElement get baseElement => super.baseElement as ConstructorElement; 4628 ConstructorElement get baseElement => super.baseElement as ConstructorElement;
4629 ClassElement get enclosingElement => baseElement.enclosingElement; 4629 ClassElement get enclosingElement => baseElement.enclosingElement;
4630 ConstructorElement get redirectedConstructor => from(baseElement.redirectedCon structor, definingType); 4630 ConstructorElement get redirectedConstructor => from(baseElement.redirectedCon structor, definingType);
4631 bool isConst() => baseElement.isConst(); 4631 bool isConst() => baseElement.isConst();
4632 bool isFactory() => baseElement.isFactory(); 4632 bool isFactory() => baseElement.isFactory();
4633 String toString() { 4633 String toString() {
4634 ConstructorElement baseElement2 = baseElement; 4634 ConstructorElement baseElement = this.baseElement;
4635 List<ParameterElement> parameters2 = parameters; 4635 List<ParameterElement> parameters = this.parameters;
4636 FunctionType type2 = type; 4636 FunctionType type = this.type;
4637 JavaStringBuilder builder = new JavaStringBuilder(); 4637 JavaStringBuilder builder = new JavaStringBuilder();
4638 builder.append(baseElement2.enclosingElement.displayName); 4638 builder.append(baseElement.enclosingElement.displayName);
4639 String name = displayName; 4639 String name = displayName;
4640 if (name != null && !name.isEmpty) { 4640 if (name != null && !name.isEmpty) {
4641 builder.append("."); 4641 builder.append(".");
4642 builder.append(name); 4642 builder.append(name);
4643 } 4643 }
4644 builder.append("("); 4644 builder.append("(");
4645 int parameterCount = parameters2.length; 4645 int parameterCount = parameters.length;
4646 for (int i = 0; i < parameterCount; i++) { 4646 for (int i = 0; i < parameterCount; i++) {
4647 if (i > 0) { 4647 if (i > 0) {
4648 builder.append(", "); 4648 builder.append(", ");
4649 } 4649 }
4650 builder.append(parameters2[i]).toString(); 4650 builder.append(parameters[i]).toString();
4651 } 4651 }
4652 builder.append(")"); 4652 builder.append(")");
4653 if (type2 != null) { 4653 if (type != null) {
4654 builder.append(" -> "); 4654 builder.append(" -> ");
4655 builder.append(type2.returnType); 4655 builder.append(type.returnType);
4656 } 4656 }
4657 return builder.toString(); 4657 return builder.toString();
4658 } 4658 }
4659 InterfaceType get definingType => super.definingType as InterfaceType; 4659 InterfaceType get definingType => super.definingType as InterfaceType;
4660 } 4660 }
4661 /** 4661 /**
4662 * The abstract class {@code ExecutableMember} defines the behavior common to me mbers that represent 4662 * The abstract class {@code ExecutableMember} defines the behavior common to me mbers that represent
4663 * an executable element defined in a parameterized type where the values of the type parameters are 4663 * an executable element defined in a parameterized type where the values of the type parameters are
4664 * known. 4664 * known.
4665 */ 4665 */
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
4891 * @param baseElement the element on which the parameterized element was creat ed 4891 * @param baseElement the element on which the parameterized element was creat ed
4892 * @param definingType the type in which the element is defined 4892 * @param definingType the type in which the element is defined
4893 */ 4893 */
4894 MethodMember(MethodElement baseElement, InterfaceType definingType) : super(ba seElement, definingType) { 4894 MethodMember(MethodElement baseElement, InterfaceType definingType) : super(ba seElement, definingType) {
4895 } 4895 }
4896 accept(ElementVisitor visitor) => visitor.visitMethodElement(this); 4896 accept(ElementVisitor visitor) => visitor.visitMethodElement(this);
4897 MethodElement get baseElement => super.baseElement as MethodElement; 4897 MethodElement get baseElement => super.baseElement as MethodElement;
4898 ClassElement get enclosingElement => baseElement.enclosingElement; 4898 ClassElement get enclosingElement => baseElement.enclosingElement;
4899 bool isAbstract() => baseElement.isAbstract(); 4899 bool isAbstract() => baseElement.isAbstract();
4900 String toString() { 4900 String toString() {
4901 MethodElement baseElement2 = baseElement; 4901 MethodElement baseElement = this.baseElement;
4902 List<ParameterElement> parameters2 = parameters; 4902 List<ParameterElement> parameters = this.parameters;
4903 FunctionType type2 = type; 4903 FunctionType type = this.type;
4904 JavaStringBuilder builder = new JavaStringBuilder(); 4904 JavaStringBuilder builder = new JavaStringBuilder();
4905 builder.append(baseElement2.enclosingElement.displayName); 4905 builder.append(baseElement.enclosingElement.displayName);
4906 builder.append("."); 4906 builder.append(".");
4907 builder.append(baseElement2.displayName); 4907 builder.append(baseElement.displayName);
4908 builder.append("("); 4908 builder.append("(");
4909 int parameterCount = parameters2.length; 4909 int parameterCount = parameters.length;
4910 for (int i = 0; i < parameterCount; i++) { 4910 for (int i = 0; i < parameterCount; i++) {
4911 if (i > 0) { 4911 if (i > 0) {
4912 builder.append(", "); 4912 builder.append(", ");
4913 } 4913 }
4914 builder.append(parameters2[i]).toString(); 4914 builder.append(parameters[i]).toString();
4915 } 4915 }
4916 builder.append(")"); 4916 builder.append(")");
4917 if (type2 != null) { 4917 if (type != null) {
4918 builder.append(" -> "); 4918 builder.append(" -> ");
4919 builder.append(type2.returnType); 4919 builder.append(type.returnType);
4920 } 4920 }
4921 return builder.toString(); 4921 return builder.toString();
4922 } 4922 }
4923 } 4923 }
4924 /** 4924 /**
4925 * Instances of the class {@code ParameterMember} represent a parameter element defined in a 4925 * Instances of the class {@code ParameterMember} represent a parameter element defined in a
4926 * parameterized type where the values of the type parameters are known. 4926 * parameterized type where the values of the type parameters are known.
4927 */ 4927 */
4928 class ParameterMember extends VariableMember implements ParameterElement { 4928 class ParameterMember extends VariableMember implements ParameterElement {
4929 4929
(...skipping 24 matching lines...) Expand all
4954 /** 4954 /**
4955 * Initialize a newly created element to represent a parameter of the given pa rameterized type. 4955 * Initialize a newly created element to represent a parameter of the given pa rameterized type.
4956 * @param baseElement the element on which the parameterized element was creat ed 4956 * @param baseElement the element on which the parameterized element was creat ed
4957 * @param definingType the type in which the element is defined 4957 * @param definingType the type in which the element is defined
4958 */ 4958 */
4959 ParameterMember(ParameterElement baseElement, ParameterizedType definingType) : super(baseElement, definingType) { 4959 ParameterMember(ParameterElement baseElement, ParameterizedType definingType) : super(baseElement, definingType) {
4960 } 4960 }
4961 accept(ElementVisitor visitor) => visitor.visitParameterElement(this); 4961 accept(ElementVisitor visitor) => visitor.visitParameterElement(this);
4962 Element getAncestor(Type elementClass) { 4962 Element getAncestor(Type elementClass) {
4963 Element element = baseElement.getAncestor(elementClass); 4963 Element element = baseElement.getAncestor(elementClass);
4964 ParameterizedType definingType2 = definingType; 4964 ParameterizedType definingType = this.definingType;
4965 if (definingType2 is InterfaceType) { 4965 if (definingType is InterfaceType) {
4966 InterfaceType definingInterfaceType = definingType2 as InterfaceType; 4966 InterfaceType definingInterfaceType = definingType as InterfaceType;
4967 if (element is ConstructorElement) { 4967 if (element is ConstructorElement) {
4968 return ConstructorMember.from((element as ConstructorElement), definingI nterfaceType) as Element; 4968 return ConstructorMember.from((element as ConstructorElement), definingI nterfaceType) as Element;
4969 } else if (element is MethodElement) { 4969 } else if (element is MethodElement) {
4970 return MethodMember.from((element as MethodElement), definingInterfaceTy pe) as Element; 4970 return MethodMember.from((element as MethodElement), definingInterfaceTy pe) as Element;
4971 } else if (element is PropertyAccessorElement) { 4971 } else if (element is PropertyAccessorElement) {
4972 return PropertyAccessorMember.from((element as PropertyAccessorElement), definingInterfaceType) as Element; 4972 return PropertyAccessorMember.from((element as PropertyAccessorElement), definingInterfaceType) as Element;
4973 } 4973 }
4974 } 4974 }
4975 return element; 4975 return element;
4976 } 4976 }
4977 ParameterElement get baseElement => super.baseElement as ParameterElement; 4977 ParameterElement get baseElement => super.baseElement as ParameterElement;
4978 Element get enclosingElement => baseElement.enclosingElement; 4978 Element get enclosingElement => baseElement.enclosingElement;
4979 ParameterKind get parameterKind => baseElement.parameterKind; 4979 ParameterKind get parameterKind => baseElement.parameterKind;
4980 List<ParameterElement> get parameters { 4980 List<ParameterElement> get parameters {
4981 List<ParameterElement> baseParameters = baseElement.parameters; 4981 List<ParameterElement> baseParameters = baseElement.parameters;
4982 int parameterCount = baseParameters.length; 4982 int parameterCount = baseParameters.length;
4983 if (parameterCount == 0) { 4983 if (parameterCount == 0) {
4984 return baseParameters; 4984 return baseParameters;
4985 } 4985 }
4986 List<ParameterElement> parameterizedParameters = new List<ParameterElement>( parameterCount); 4986 List<ParameterElement> parameterizedParameters = new List<ParameterElement>( parameterCount);
4987 for (int i = 0; i < parameterCount; i++) { 4987 for (int i = 0; i < parameterCount; i++) {
4988 parameterizedParameters[i] = ParameterMember.from(baseParameters[i], defin ingType); 4988 parameterizedParameters[i] = ParameterMember.from(baseParameters[i], defin ingType);
4989 } 4989 }
4990 return parameterizedParameters; 4990 return parameterizedParameters;
4991 } 4991 }
4992 SourceRange get visibleRange => baseElement.visibleRange; 4992 SourceRange get visibleRange => baseElement.visibleRange;
4993 bool isInitializingFormal() => baseElement.isInitializingFormal(); 4993 bool isInitializingFormal() => baseElement.isInitializingFormal();
4994 String toString() { 4994 String toString() {
4995 ParameterElement baseElement2 = baseElement; 4995 ParameterElement baseElement = this.baseElement;
4996 String left = ""; 4996 String left = "";
4997 String right = ""; 4997 String right = "";
4998 while (true) { 4998 while (true) {
4999 if (baseElement2.parameterKind == ParameterKind.NAMED) { 4999 if (baseElement.parameterKind == ParameterKind.NAMED) {
5000 left = "{"; 5000 left = "{";
5001 right = "}"; 5001 right = "}";
5002 } else if (baseElement2.parameterKind == ParameterKind.POSITIONAL) { 5002 } else if (baseElement.parameterKind == ParameterKind.POSITIONAL) {
5003 left = "["; 5003 left = "[";
5004 right = "]"; 5004 right = "]";
5005 } 5005 }
5006 break; 5006 break;
5007 } 5007 }
5008 JavaStringBuilder builder = new JavaStringBuilder(); 5008 JavaStringBuilder builder = new JavaStringBuilder();
5009 builder.append(left); 5009 builder.append(left);
5010 builder.append(type); 5010 builder.append(type);
5011 builder.append(" "); 5011 builder.append(" ");
5012 builder.append(baseElement2.displayName); 5012 builder.append(baseElement.displayName);
5013 builder.append(right); 5013 builder.append(right);
5014 return builder.toString(); 5014 return builder.toString();
5015 } 5015 }
5016 void visitChildren(ElementVisitor<Object> visitor) { 5016 void visitChildren(ElementVisitor<Object> visitor) {
5017 super.visitChildren(visitor); 5017 super.visitChildren(visitor);
5018 safelyVisitChildren(parameters, visitor); 5018 safelyVisitChildren(parameters, visitor);
5019 } 5019 }
5020 } 5020 }
5021 /** 5021 /**
5022 * Instances of the class {@code PropertyAccessorMember} represent a property ac cessor element 5022 * Instances of the class {@code PropertyAccessorMember} represent a property ac cessor element
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
5055 * @param definingType the type in which the element is defined 5055 * @param definingType the type in which the element is defined
5056 */ 5056 */
5057 PropertyAccessorMember(PropertyAccessorElement baseElement, InterfaceType defi ningType) : super(baseElement, definingType) { 5057 PropertyAccessorMember(PropertyAccessorElement baseElement, InterfaceType defi ningType) : super(baseElement, definingType) {
5058 } 5058 }
5059 accept(ElementVisitor visitor) => visitor.visitPropertyAccessorElement(this); 5059 accept(ElementVisitor visitor) => visitor.visitPropertyAccessorElement(this);
5060 PropertyAccessorElement get baseElement => super.baseElement as PropertyAccess orElement; 5060 PropertyAccessorElement get baseElement => super.baseElement as PropertyAccess orElement;
5061 PropertyAccessorElement get correspondingGetter => from(baseElement.correspond ingGetter, definingType); 5061 PropertyAccessorElement get correspondingGetter => from(baseElement.correspond ingGetter, definingType);
5062 PropertyAccessorElement get correspondingSetter => from(baseElement.correspond ingSetter, definingType); 5062 PropertyAccessorElement get correspondingSetter => from(baseElement.correspond ingSetter, definingType);
5063 Element get enclosingElement => baseElement.enclosingElement; 5063 Element get enclosingElement => baseElement.enclosingElement;
5064 PropertyInducingElement get variable { 5064 PropertyInducingElement get variable {
5065 PropertyInducingElement variable2 = baseElement.variable; 5065 PropertyInducingElement variable = baseElement.variable;
5066 if (variable2 is FieldElement) { 5066 if (variable is FieldElement) {
5067 return FieldMember.from(((variable2 as FieldElement)), definingType); 5067 return FieldMember.from(((variable as FieldElement)), definingType);
5068 } 5068 }
5069 return variable2; 5069 return variable;
5070 } 5070 }
5071 bool isAbstract() => baseElement.isAbstract(); 5071 bool isAbstract() => baseElement.isAbstract();
5072 bool isGetter() => baseElement.isGetter(); 5072 bool isGetter() => baseElement.isGetter();
5073 bool isSetter() => baseElement.isSetter(); 5073 bool isSetter() => baseElement.isSetter();
5074 InterfaceType get definingType => super.definingType as InterfaceType; 5074 InterfaceType get definingType => super.definingType as InterfaceType;
5075 } 5075 }
5076 /** 5076 /**
5077 * The abstract class {@code VariableMember} defines the behavior common to memb ers that represent a 5077 * The abstract class {@code VariableMember} defines the behavior common to memb ers that represent a
5078 * variable element defined in a parameterized type where the values of the type parameters are 5078 * variable element defined in a parameterized type where the values of the type parameters are
5079 * known. 5079 * known.
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
5284 _jtd_constructor_300_impl(FunctionTypeAliasElement element) { 5284 _jtd_constructor_300_impl(FunctionTypeAliasElement element) {
5285 } 5285 }
5286 bool operator ==(Object object) { 5286 bool operator ==(Object object) {
5287 if (object is! FunctionTypeImpl) { 5287 if (object is! FunctionTypeImpl) {
5288 return false; 5288 return false;
5289 } 5289 }
5290 FunctionTypeImpl otherType = object as FunctionTypeImpl; 5290 FunctionTypeImpl otherType = object as FunctionTypeImpl;
5291 return element == otherType.element && JavaArrays.equals(_normalParameterTyp es, otherType._normalParameterTypes) && JavaArrays.equals(_optionalParameterType s, otherType._optionalParameterTypes) && equals2(_namedParameterTypes, otherType ._namedParameterTypes) && _returnType == otherType._returnType; 5291 return element == otherType.element && JavaArrays.equals(_normalParameterTyp es, otherType._normalParameterTypes) && JavaArrays.equals(_optionalParameterType s, otherType._optionalParameterTypes) && equals2(_namedParameterTypes, otherType ._namedParameterTypes) && _returnType == otherType._returnType;
5292 } 5292 }
5293 String get displayName { 5293 String get displayName {
5294 String name2 = name; 5294 String name = this.name;
5295 if (name2 == null) { 5295 if (name == null) {
5296 JavaStringBuilder builder = new JavaStringBuilder(); 5296 JavaStringBuilder builder = new JavaStringBuilder();
5297 builder.append("("); 5297 builder.append("(");
5298 bool needsComma = false; 5298 bool needsComma = false;
5299 if (_normalParameterTypes.length > 0) { 5299 if (_normalParameterTypes.length > 0) {
5300 for (Type2 type in _normalParameterTypes) { 5300 for (Type2 type in _normalParameterTypes) {
5301 if (needsComma) { 5301 if (needsComma) {
5302 builder.append(", "); 5302 builder.append(", ");
5303 } else { 5303 } else {
5304 needsComma = true; 5304 needsComma = true;
5305 } 5305 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
5341 } 5341 }
5342 builder.append("}"); 5342 builder.append("}");
5343 needsComma = true; 5343 needsComma = true;
5344 } 5344 }
5345 builder.append(") -> "); 5345 builder.append(") -> ");
5346 if (_returnType == null) { 5346 if (_returnType == null) {
5347 builder.append("null"); 5347 builder.append("null");
5348 } else { 5348 } else {
5349 builder.append(_returnType.displayName); 5349 builder.append(_returnType.displayName);
5350 } 5350 }
5351 name2 = builder.toString(); 5351 name = builder.toString();
5352 } 5352 }
5353 return name2; 5353 return name;
5354 } 5354 }
5355 Map<String, Type2> get namedParameterTypes => _namedParameterTypes; 5355 Map<String, Type2> get namedParameterTypes => _namedParameterTypes;
5356 List<Type2> get normalParameterTypes => _normalParameterTypes; 5356 List<Type2> get normalParameterTypes => _normalParameterTypes;
5357 List<Type2> get optionalParameterTypes => _optionalParameterTypes; 5357 List<Type2> get optionalParameterTypes => _optionalParameterTypes;
5358 List<ParameterElement> get parameters { 5358 List<ParameterElement> get parameters {
5359 List<ParameterElement> baseParameters2 = baseParameters; 5359 List<ParameterElement> baseParameters = this.baseParameters;
5360 int parameterCount = baseParameters2.length; 5360 int parameterCount = baseParameters.length;
5361 if (parameterCount == 0) { 5361 if (parameterCount == 0) {
5362 return baseParameters2; 5362 return baseParameters;
5363 } 5363 }
5364 List<ParameterElement> specializedParameters = new List<ParameterElement>(pa rameterCount); 5364 List<ParameterElement> specializedParameters = new List<ParameterElement>(pa rameterCount);
5365 for (int i = 0; i < parameterCount; i++) { 5365 for (int i = 0; i < parameterCount; i++) {
5366 specializedParameters[i] = ParameterMember.from(baseParameters2[i], this); 5366 specializedParameters[i] = ParameterMember.from(baseParameters[i], this);
5367 } 5367 }
5368 return specializedParameters; 5368 return specializedParameters;
5369 } 5369 }
5370 Type2 get returnType => _returnType; 5370 Type2 get returnType => _returnType;
5371 List<Type2> get typeArguments => _typeArguments; 5371 List<Type2> get typeArguments => _typeArguments;
5372 List<TypeVariableElement> get typeVariables { 5372 List<TypeVariableElement> get typeVariables {
5373 Element element2 = element; 5373 Element element = this.element;
5374 if (element2 is FunctionTypeAliasElement) { 5374 if (element is FunctionTypeAliasElement) {
5375 return ((element2 as FunctionTypeAliasElement)).typeVariables; 5375 return ((element as FunctionTypeAliasElement)).typeVariables;
5376 } 5376 }
5377 return TypeVariableElementImpl.EMPTY_ARRAY; 5377 return TypeVariableElementImpl.EMPTY_ARRAY;
5378 } 5378 }
5379 int get hashCode { 5379 int get hashCode {
5380 Element element2 = element; 5380 Element element = this.element;
5381 if (element2 == null) { 5381 if (element == null) {
5382 return 0; 5382 return 0;
5383 } 5383 }
5384 return element2.hashCode; 5384 return element.hashCode;
5385 } 5385 }
5386 bool isSubtypeOf(Type2 type) { 5386 bool isSubtypeOf(Type2 type) {
5387 if (type == null) { 5387 if (type == null) {
5388 return false; 5388 return false;
5389 } else if (identical(this, type) || type.isDynamic() || type.isDartCoreFunct ion() || type.isObject()) { 5389 } else if (identical(this, type) || type.isDynamic() || type.isDartCoreFunct ion() || type.isObject()) {
5390 return true; 5390 return true;
5391 } else if (type is! FunctionType) { 5391 } else if (type is! FunctionType) {
5392 return false; 5392 return false;
5393 } else if (this == type) { 5393 } else if (this == type) {
5394 return true; 5394 return true;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
5503 this._typeArguments = typeArguments2; 5503 this._typeArguments = typeArguments2;
5504 } 5504 }
5505 FunctionTypeImpl substitute4(List<Type2> argumentTypes) => substitute2(argumen tTypes, typeArguments); 5505 FunctionTypeImpl substitute4(List<Type2> argumentTypes) => substitute2(argumen tTypes, typeArguments);
5506 FunctionTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterT ypes) { 5506 FunctionTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterT ypes) {
5507 if (argumentTypes.length != parameterTypes.length) { 5507 if (argumentTypes.length != parameterTypes.length) {
5508 throw new IllegalArgumentException("argumentTypes.length (${argumentTypes. length}) != parameterTypes.length (${parameterTypes.length})"); 5508 throw new IllegalArgumentException("argumentTypes.length (${argumentTypes. length}) != parameterTypes.length (${parameterTypes.length})");
5509 } 5509 }
5510 if (argumentTypes.length == 0) { 5510 if (argumentTypes.length == 0) {
5511 return this; 5511 return this;
5512 } 5512 }
5513 Element element2 = element; 5513 Element element = this.element;
5514 FunctionTypeImpl newType = (element2 is ExecutableElement) ? new FunctionTyp eImpl.con1((element2 as ExecutableElement)) : new FunctionTypeImpl.con2((element 2 as FunctionTypeAliasElement)); 5514 FunctionTypeImpl newType = (element is ExecutableElement) ? new FunctionType Impl.con1((element as ExecutableElement)) : new FunctionTypeImpl.con2((element a s FunctionTypeAliasElement));
5515 newType.returnType = _returnType.substitute2(argumentTypes, parameterTypes); 5515 newType.returnType = _returnType.substitute2(argumentTypes, parameterTypes);
5516 newType.normalParameterTypes = TypeImpl.substitute(_normalParameterTypes, ar gumentTypes, parameterTypes); 5516 newType.normalParameterTypes = TypeImpl.substitute(_normalParameterTypes, ar gumentTypes, parameterTypes);
5517 newType.optionalParameterTypes = TypeImpl.substitute(_optionalParameterTypes , argumentTypes, parameterTypes); 5517 newType.optionalParameterTypes = TypeImpl.substitute(_optionalParameterTypes , argumentTypes, parameterTypes);
5518 newType._namedParameterTypes = substitute3(_namedParameterTypes, argumentTyp es, parameterTypes); 5518 newType._namedParameterTypes = substitute3(_namedParameterTypes, argumentTyp es, parameterTypes);
5519 newType.typeArguments = argumentTypes; 5519 newType.typeArguments = argumentTypes;
5520 return newType; 5520 return newType;
5521 } 5521 }
5522 void appendTo(JavaStringBuilder builder) { 5522 void appendTo(JavaStringBuilder builder) {
5523 builder.append("("); 5523 builder.append("(");
5524 bool needsComma = false; 5524 bool needsComma = false;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
5573 builder.append("null"); 5573 builder.append("null");
5574 } else { 5574 } else {
5575 ((_returnType as TypeImpl)).appendTo(builder); 5575 ((_returnType as TypeImpl)).appendTo(builder);
5576 } 5576 }
5577 } 5577 }
5578 5578
5579 /** 5579 /**
5580 * @return the base parameter elements of this function element, not {@code nu ll}. 5580 * @return the base parameter elements of this function element, not {@code nu ll}.
5581 */ 5581 */
5582 List<ParameterElement> get baseParameters { 5582 List<ParameterElement> get baseParameters {
5583 Element element2 = element; 5583 Element element = this.element;
5584 if (element2 is ExecutableElement) { 5584 if (element is ExecutableElement) {
5585 return ((element2 as ExecutableElement)).parameters; 5585 return ((element as ExecutableElement)).parameters;
5586 } else { 5586 } else {
5587 return ((element2 as FunctionTypeAliasElement)).parameters; 5587 return ((element as FunctionTypeAliasElement)).parameters;
5588 } 5588 }
5589 } 5589 }
5590 } 5590 }
5591 /** 5591 /**
5592 * Instances of the class {@code InterfaceTypeImpl} defines the behavior common to objects 5592 * Instances of the class {@code InterfaceTypeImpl} defines the behavior common to objects
5593 * representing the type introduced by either a class or an interface, or a refe rence to such a 5593 * representing the type introduced by either a class or an interface, or a refe rence to such a
5594 * type. 5594 * type.
5595 * @coverage dart.engine.type 5595 * @coverage dart.engine.type
5596 */ 5596 */
5597 class InterfaceTypeImpl extends TypeImpl implements InterfaceType { 5597 class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5638 List<InterfaceType> superinterfaces = classElement.interfaces; 5638 List<InterfaceType> superinterfaces = classElement.interfaces;
5639 int pathLength; 5639 int pathLength;
5640 if (superinterfaces.length > 0) { 5640 if (superinterfaces.length > 0) {
5641 for (InterfaceType superinterface in superinterfaces) { 5641 for (InterfaceType superinterface in superinterfaces) {
5642 pathLength = computeLongestInheritancePathToObject2(superinterface, de pth + 1, visitedClasses); 5642 pathLength = computeLongestInheritancePathToObject2(superinterface, de pth + 1, visitedClasses);
5643 if (pathLength > longestPath) { 5643 if (pathLength > longestPath) {
5644 longestPath = pathLength; 5644 longestPath = pathLength;
5645 } 5645 }
5646 } 5646 }
5647 } 5647 }
5648 InterfaceType supertype2 = classElement.supertype; 5648 InterfaceType supertype = classElement.supertype;
5649 pathLength = computeLongestInheritancePathToObject2(supertype2, depth + 1, visitedClasses); 5649 pathLength = computeLongestInheritancePathToObject2(supertype, depth + 1, visitedClasses);
5650 if (pathLength > longestPath) { 5650 if (pathLength > longestPath) {
5651 longestPath = pathLength; 5651 longestPath = pathLength;
5652 } 5652 }
5653 } finally { 5653 } finally {
5654 visitedClasses.remove(classElement); 5654 visitedClasses.remove(classElement);
5655 } 5655 }
5656 return longestPath; 5656 return longestPath;
5657 } 5657 }
5658 5658
5659 /** 5659 /**
5660 * Returns the set of all superinterfaces of the passed {@link Type}. This is a recursive method, 5660 * Returns the set of all superinterfaces of the passed {@link Type}. This is a recursive method,
5661 * callers should call the public {@link #computeSuperinterfaceSet(Type)}. 5661 * callers should call the public {@link #computeSuperinterfaceSet(Type)}.
5662 * @param type the {@link Type} to compute the set of superinterfaces of 5662 * @param type the {@link Type} to compute the set of superinterfaces of
5663 * @param set a {@link HashSet} used recursively by this method 5663 * @param set a {@link HashSet} used recursively by this method
5664 * @return the {@link Set} of superinterfaces of the passed {@link Type} 5664 * @return the {@link Set} of superinterfaces of the passed {@link Type}
5665 * @see #computeSuperinterfaceSet(Type) 5665 * @see #computeSuperinterfaceSet(Type)
5666 * @see #getLeastUpperBound(Type) 5666 * @see #getLeastUpperBound(Type)
5667 */ 5667 */
5668 static Set<InterfaceType> computeSuperinterfaceSet2(InterfaceType type, Set<In terfaceType> set) { 5668 static Set<InterfaceType> computeSuperinterfaceSet2(InterfaceType type, Set<In terfaceType> set) {
5669 Element element2 = type.element; 5669 Element element = type.element;
5670 if (element2 != null && element2 is ClassElement) { 5670 if (element != null && element is ClassElement) {
5671 ClassElement classElement = element2 as ClassElement; 5671 ClassElement classElement = element as ClassElement;
5672 List<InterfaceType> superinterfaces = classElement.interfaces; 5672 List<InterfaceType> superinterfaces = classElement.interfaces;
5673 for (InterfaceType superinterface in superinterfaces) { 5673 for (InterfaceType superinterface in superinterfaces) {
5674 if (javaSetAdd(set, superinterface)) { 5674 if (javaSetAdd(set, superinterface)) {
5675 computeSuperinterfaceSet2(superinterface, set); 5675 computeSuperinterfaceSet2(superinterface, set);
5676 } 5676 }
5677 } 5677 }
5678 InterfaceType supertype2 = classElement.supertype; 5678 InterfaceType supertype = classElement.supertype;
5679 if (supertype2 != null) { 5679 if (supertype != null) {
5680 if (javaSetAdd(set, supertype2)) { 5680 if (javaSetAdd(set, supertype)) {
5681 computeSuperinterfaceSet2(supertype2, set); 5681 computeSuperinterfaceSet2(supertype, set);
5682 } 5682 }
5683 } 5683 }
5684 } 5684 }
5685 return set; 5685 return set;
5686 } 5686 }
5687 5687
5688 /** 5688 /**
5689 * Return the intersection of the given sets of types, where intersection is b ased on the equality 5689 * Return the intersection of the given sets of types, where intersection is b ased on the equality
5690 * of the elements of the types rather than on the equality of the types thems elves. In cases 5690 * of the elements of the types rather than on the equality of the types thems elves. In cases
5691 * where two non-equal types have equal elements, which only happens when the class is 5691 * where two non-equal types have equal elements, which only happens when the class is
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
5772 if (object is! InterfaceTypeImpl) { 5772 if (object is! InterfaceTypeImpl) {
5773 return false; 5773 return false;
5774 } 5774 }
5775 InterfaceTypeImpl otherType = object as InterfaceTypeImpl; 5775 InterfaceTypeImpl otherType = object as InterfaceTypeImpl;
5776 return element == otherType.element && JavaArrays.equals(_typeArguments, oth erType._typeArguments); 5776 return element == otherType.element && JavaArrays.equals(_typeArguments, oth erType._typeArguments);
5777 } 5777 }
5778 ClassElement get element => super.element as ClassElement; 5778 ClassElement get element => super.element as ClassElement;
5779 PropertyAccessorElement getGetter(String getterName) => PropertyAccessorMember .from(((element as ClassElementImpl)).getGetter(getterName), this); 5779 PropertyAccessorElement getGetter(String getterName) => PropertyAccessorMember .from(((element as ClassElementImpl)).getGetter(getterName), this);
5780 List<InterfaceType> get interfaces { 5780 List<InterfaceType> get interfaces {
5781 ClassElement classElement = element; 5781 ClassElement classElement = element;
5782 List<InterfaceType> interfaces2 = classElement.interfaces; 5782 List<InterfaceType> interfaces = classElement.interfaces;
5783 List<TypeVariableElement> typeVariables2 = classElement.typeVariables; 5783 List<TypeVariableElement> typeVariables = classElement.typeVariables;
5784 if (typeVariables2.length == 0) { 5784 if (typeVariables.length == 0) {
5785 return interfaces2; 5785 return interfaces;
5786 } 5786 }
5787 int count = interfaces2.length; 5787 int count = interfaces.length;
5788 List<InterfaceType> typedInterfaces = new List<InterfaceType>(count); 5788 List<InterfaceType> typedInterfaces = new List<InterfaceType>(count);
5789 for (int i = 0; i < count; i++) { 5789 for (int i = 0; i < count; i++) {
5790 typedInterfaces[i] = interfaces2[i].substitute2(_typeArguments, TypeVariab leTypeImpl.getTypes(typeVariables2)); 5790 typedInterfaces[i] = interfaces[i].substitute2(_typeArguments, TypeVariabl eTypeImpl.getTypes(typeVariables));
5791 } 5791 }
5792 return typedInterfaces; 5792 return typedInterfaces;
5793 } 5793 }
5794 Type2 getLeastUpperBound(Type2 type) { 5794 Type2 getLeastUpperBound(Type2 type) {
5795 if (identical(type, this)) { 5795 if (identical(type, this)) {
5796 return this; 5796 return this;
5797 } 5797 }
5798 Type2 dynamicType = DynamicTypeImpl.instance; 5798 Type2 dynamicType = DynamicTypeImpl.instance;
5799 if (identical(this, dynamicType) || identical(type, dynamicType)) { 5799 if (identical(this, dynamicType) || identical(type, dynamicType)) {
5800 return dynamicType; 5800 return dynamicType;
(...skipping 27 matching lines...) Expand all
5828 } 5828 }
5829 if (numberOfTypesAtMaxDepth == 1) { 5829 if (numberOfTypesAtMaxDepth == 1) {
5830 return s[indexOfLeastUpperBound]; 5830 return s[indexOfLeastUpperBound];
5831 } 5831 }
5832 } 5832 }
5833 return null; 5833 return null;
5834 } 5834 }
5835 MethodElement getMethod(String methodName) => MethodMember.from(((element as C lassElementImpl)).getMethod(methodName), this); 5835 MethodElement getMethod(String methodName) => MethodMember.from(((element as C lassElementImpl)).getMethod(methodName), this);
5836 List<InterfaceType> get mixins { 5836 List<InterfaceType> get mixins {
5837 ClassElement classElement = element; 5837 ClassElement classElement = element;
5838 List<InterfaceType> mixins2 = classElement.mixins; 5838 List<InterfaceType> mixins = classElement.mixins;
5839 List<TypeVariableElement> typeVariables2 = classElement.typeVariables; 5839 List<TypeVariableElement> typeVariables = classElement.typeVariables;
5840 if (typeVariables2.length == 0) { 5840 if (typeVariables.length == 0) {
5841 return mixins2; 5841 return mixins;
5842 } 5842 }
5843 int count = mixins2.length; 5843 int count = mixins.length;
5844 List<InterfaceType> typedMixins = new List<InterfaceType>(count); 5844 List<InterfaceType> typedMixins = new List<InterfaceType>(count);
5845 for (int i = 0; i < count; i++) { 5845 for (int i = 0; i < count; i++) {
5846 typedMixins[i] = mixins2[i].substitute2(_typeArguments, TypeVariableTypeIm pl.getTypes(typeVariables2)); 5846 typedMixins[i] = mixins[i].substitute2(_typeArguments, TypeVariableTypeImp l.getTypes(typeVariables));
5847 } 5847 }
5848 return typedMixins; 5848 return typedMixins;
5849 } 5849 }
5850 PropertyAccessorElement getSetter(String setterName) => PropertyAccessorMember .from(((element as ClassElementImpl)).getSetter(setterName), this); 5850 PropertyAccessorElement getSetter(String setterName) => PropertyAccessorMember .from(((element as ClassElementImpl)).getSetter(setterName), this);
5851 InterfaceType get superclass { 5851 InterfaceType get superclass {
5852 ClassElement classElement = element; 5852 ClassElement classElement = element;
5853 InterfaceType supertype2 = classElement.supertype; 5853 InterfaceType supertype = classElement.supertype;
5854 if (supertype2 == null) { 5854 if (supertype == null) {
5855 return null; 5855 return null;
5856 } 5856 }
5857 return supertype2.substitute2(_typeArguments, TypeVariableTypeImpl.getTypes( classElement.typeVariables)); 5857 return supertype.substitute2(_typeArguments, TypeVariableTypeImpl.getTypes(c lassElement.typeVariables));
5858 } 5858 }
5859 List<Type2> get typeArguments => _typeArguments; 5859 List<Type2> get typeArguments => _typeArguments;
5860 List<TypeVariableElement> get typeVariables => element.typeVariables; 5860 List<TypeVariableElement> get typeVariables => element.typeVariables;
5861 int get hashCode { 5861 int get hashCode {
5862 ClassElement element2 = element; 5862 ClassElement element = this.element;
5863 if (element2 == null) { 5863 if (element == null) {
5864 return 0; 5864 return 0;
5865 } 5865 }
5866 return element2.hashCode; 5866 return element.hashCode;
5867 } 5867 }
5868 bool isDartCoreFunction() { 5868 bool isDartCoreFunction() {
5869 ClassElement element2 = element; 5869 ClassElement element = this.element;
5870 if (element2 == null) { 5870 if (element == null) {
5871 return false; 5871 return false;
5872 } 5872 }
5873 return element2.name == "Function" && element2.library.isDartCore(); 5873 return element.name == "Function" && element.library.isDartCore();
5874 } 5874 }
5875 bool isDirectSupertypeOf(InterfaceType type) { 5875 bool isDirectSupertypeOf(InterfaceType type) {
5876 ClassElement i = element; 5876 ClassElement i = element;
5877 ClassElement j = type.element; 5877 ClassElement j = type.element;
5878 InterfaceType supertype2 = j.supertype; 5878 InterfaceType supertype = j.supertype;
5879 if (supertype2 == null) { 5879 if (supertype == null) {
5880 return false; 5880 return false;
5881 } 5881 }
5882 ClassElement supertypeElement = supertype2.element; 5882 ClassElement supertypeElement = supertype.element;
5883 if (supertypeElement == i) { 5883 if (supertypeElement == i) {
5884 return true; 5884 return true;
5885 } 5885 }
5886 for (InterfaceType interfaceType in j.interfaces) { 5886 for (InterfaceType interfaceType in j.interfaces) {
5887 if (interfaceType.element == i) { 5887 if (interfaceType.element == i) {
5888 return true; 5888 return true;
5889 } 5889 }
5890 } 5890 }
5891 for (InterfaceType mixinType in j.mixins) { 5891 for (InterfaceType mixinType in j.mixins) {
5892 if (mixinType.element == i) { 5892 if (mixinType.element == i) {
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
6079 if (tArguments.length != sArguments.length) { 6079 if (tArguments.length != sArguments.length) {
6080 return false; 6080 return false;
6081 } 6081 }
6082 for (int i = 0; i < tArguments.length; i++) { 6082 for (int i = 0; i < tArguments.length; i++) {
6083 if (!tArguments[i].isMoreSpecificThan(sArguments[i])) { 6083 if (!tArguments[i].isMoreSpecificThan(sArguments[i])) {
6084 return false; 6084 return false;
6085 } 6085 }
6086 } 6086 }
6087 return true; 6087 return true;
6088 } 6088 }
6089 ClassElement element2 = element; 6089 ClassElement element = this.element;
6090 if (element2 == null || visitedClasses.contains(element2)) { 6090 if (element == null || visitedClasses.contains(element)) {
6091 return false; 6091 return false;
6092 } 6092 }
6093 javaSetAdd(visitedClasses, element2); 6093 javaSetAdd(visitedClasses, element);
6094 InterfaceType supertype2 = element2.supertype; 6094 InterfaceType supertype = element.supertype;
6095 if (supertype2 != null && ((supertype2 as InterfaceTypeImpl)).isMoreSpecific Than2(s, visitedClasses)) { 6095 if (supertype != null && ((supertype as InterfaceTypeImpl)).isMoreSpecificTh an2(s, visitedClasses)) {
6096 return true; 6096 return true;
6097 } 6097 }
6098 for (InterfaceType interfaceType in element2.interfaces) { 6098 for (InterfaceType interfaceType in element.interfaces) {
6099 if (((interfaceType as InterfaceTypeImpl)).isMoreSpecificThan2(s, visitedC lasses)) { 6099 if (((interfaceType as InterfaceTypeImpl)).isMoreSpecificThan2(s, visitedC lasses)) {
6100 return true; 6100 return true;
6101 } 6101 }
6102 } 6102 }
6103 for (InterfaceType mixinType in element2.mixins) { 6103 for (InterfaceType mixinType in element.mixins) {
6104 if (((mixinType as InterfaceTypeImpl)).isMoreSpecificThan2(s, visitedClass es)) { 6104 if (((mixinType as InterfaceTypeImpl)).isMoreSpecificThan2(s, visitedClass es)) {
6105 return true; 6105 return true;
6106 } 6106 }
6107 } 6107 }
6108 return false; 6108 return false;
6109 } 6109 }
6110 bool isSubtypeOf2(InterfaceType type, Set<ClassElement> visitedClasses) { 6110 bool isSubtypeOf2(InterfaceType type, Set<ClassElement> visitedClasses) {
6111 InterfaceType typeT = this; 6111 InterfaceType typeT = this;
6112 InterfaceType typeS = type; 6112 InterfaceType typeS = type;
6113 ClassElement elementT = element; 6113 ClassElement elementT = element;
(...skipping 12 matching lines...) Expand all
6126 } 6126 }
6127 for (int i = 0; i < typeTArgs.length; i++) { 6127 for (int i = 0; i < typeTArgs.length; i++) {
6128 if (!typeTArgs[i].isSubtypeOf(typeSArgs[i])) { 6128 if (!typeTArgs[i].isSubtypeOf(typeSArgs[i])) {
6129 return false; 6129 return false;
6130 } 6130 }
6131 } 6131 }
6132 return true; 6132 return true;
6133 } else if (typeS.isDartCoreFunction() && elementT.getMethod("call") != null) { 6133 } else if (typeS.isDartCoreFunction() && elementT.getMethod("call") != null) {
6134 return true; 6134 return true;
6135 } 6135 }
6136 InterfaceType supertype2 = elementT.supertype; 6136 InterfaceType supertype = elementT.supertype;
6137 if (supertype2 != null && ((supertype2 as InterfaceTypeImpl)).isSubtypeOf2(t ypeS, visitedClasses)) { 6137 if (supertype != null && ((supertype as InterfaceTypeImpl)).isSubtypeOf2(typ eS, visitedClasses)) {
6138 return true; 6138 return true;
6139 } 6139 }
6140 List<InterfaceType> interfaceTypes = elementT.interfaces; 6140 List<InterfaceType> interfaceTypes = elementT.interfaces;
6141 for (InterfaceType interfaceType in interfaceTypes) { 6141 for (InterfaceType interfaceType in interfaceTypes) {
6142 if (((interfaceType as InterfaceTypeImpl)).isSubtypeOf2(typeS, visitedClas ses)) { 6142 if (((interfaceType as InterfaceTypeImpl)).isSubtypeOf2(typeS, visitedClas ses)) {
6143 return true; 6143 return true;
6144 } 6144 }
6145 } 6145 }
6146 List<InterfaceType> mixinTypes = elementT.mixins; 6146 List<InterfaceType> mixinTypes = elementT.mixins;
6147 for (InterfaceType mixinType in mixinTypes) { 6147 for (InterfaceType mixinType in mixinTypes) {
(...skipping 13 matching lines...) Expand all
6161 6161
6162 /** 6162 /**
6163 * Return an array containing the results of using the given argument types an d parameter types to 6163 * Return an array containing the results of using the given argument types an d parameter types to
6164 * perform a substitution on all of the given types. 6164 * perform a substitution on all of the given types.
6165 * @param types the types on which a substitution is to be performed 6165 * @param types the types on which a substitution is to be performed
6166 * @param argumentTypes the argument types for the substitution 6166 * @param argumentTypes the argument types for the substitution
6167 * @param parameterTypes the parameter types for the substitution 6167 * @param parameterTypes the parameter types for the substitution
6168 * @return the result of performing the substitution on each of the types 6168 * @return the result of performing the substitution on each of the types
6169 */ 6169 */
6170 static List<Type2> substitute(List<Type2> types, List<Type2> argumentTypes, Li st<Type2> parameterTypes) { 6170 static List<Type2> substitute(List<Type2> types, List<Type2> argumentTypes, Li st<Type2> parameterTypes) {
6171 int length2 = types.length; 6171 int length = types.length;
6172 if (length2 == 0) { 6172 if (length == 0) {
6173 return types; 6173 return types;
6174 } 6174 }
6175 List<Type2> newTypes = new List<Type2>(length2); 6175 List<Type2> newTypes = new List<Type2>(length);
6176 for (int i = 0; i < length2; i++) { 6176 for (int i = 0; i < length; i++) {
6177 newTypes[i] = types[i].substitute2(argumentTypes, parameterTypes); 6177 newTypes[i] = types[i].substitute2(argumentTypes, parameterTypes);
6178 } 6178 }
6179 return newTypes; 6179 return newTypes;
6180 } 6180 }
6181 6181
6182 /** 6182 /**
6183 * The element representing the declaration of this type, or {@code null} if t he type has not, or 6183 * The element representing the declaration of this type, or {@code null} if t he type has not, or
6184 * cannot, be associated with an element. 6184 * cannot, be associated with an element.
6185 */ 6185 */
6186 Element _element; 6186 Element _element;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
6264 } 6264 }
6265 bool operator ==(Object object) => object is TypeVariableTypeImpl && element = = ((object as TypeVariableTypeImpl)).element; 6265 bool operator ==(Object object) => object is TypeVariableTypeImpl && element = = ((object as TypeVariableTypeImpl)).element;
6266 TypeVariableElement get element => super.element as TypeVariableElement; 6266 TypeVariableElement get element => super.element as TypeVariableElement;
6267 int get hashCode => element.hashCode; 6267 int get hashCode => element.hashCode;
6268 bool isMoreSpecificThan(Type2 type) { 6268 bool isMoreSpecificThan(Type2 type) {
6269 Type2 upperBound = element.bound; 6269 Type2 upperBound = element.bound;
6270 return type == upperBound; 6270 return type == upperBound;
6271 } 6271 }
6272 bool isSubtypeOf(Type2 type) => true; 6272 bool isSubtypeOf(Type2 type) => true;
6273 Type2 substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) { 6273 Type2 substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) {
6274 int length2 = parameterTypes.length; 6274 int length = parameterTypes.length;
6275 for (int i = 0; i < length2; i++) { 6275 for (int i = 0; i < length; i++) {
6276 if (parameterTypes[i] == this) { 6276 if (parameterTypes[i] == this) {
6277 return argumentTypes[i]; 6277 return argumentTypes[i];
6278 } 6278 }
6279 } 6279 }
6280 return this; 6280 return this;
6281 } 6281 }
6282 } 6282 }
6283 /** 6283 /**
6284 * The unique instance of the class {@code VoidTypeImpl} implements the type {@c ode void}. 6284 * The unique instance of the class {@code VoidTypeImpl} implements the type {@c ode void}.
6285 * @coverage dart.engine.type 6285 * @coverage dart.engine.type
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
6843 abstract class TypeVariableType implements Type2 { 6843 abstract class TypeVariableType implements Type2 {
6844 TypeVariableElement get element; 6844 TypeVariableElement get element;
6845 } 6845 }
6846 /** 6846 /**
6847 * The interface {@code VoidType} defines the behavior of the unique object repr esenting the type{@code void}. 6847 * The interface {@code VoidType} defines the behavior of the unique object repr esenting the type{@code void}.
6848 * @coverage dart.engine.type 6848 * @coverage dart.engine.type
6849 */ 6849 */
6850 abstract class VoidType implements Type2 { 6850 abstract class VoidType implements Type2 {
6851 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes); 6851 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes);
6852 } 6852 }
OLDNEW
« no previous file with comments | « pkg/analyzer_experimental/lib/src/generated/constant.dart ('k') | pkg/analyzer_experimental/lib/src/generated/engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698