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

Unified Diff: pkg/analyzer-experimental/lib/src/generated/element.dart

Issue 12253009: Fresh drop of analyzer-experimental. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer-experimental/lib/src/generated/element.dart
===================================================================
--- pkg/analyzer-experimental/lib/src/generated/element.dart (revision 18469)
+++ pkg/analyzer-experimental/lib/src/generated/element.dart (working copy)
@@ -9,7 +9,8 @@
import 'source.dart';
import 'scanner.dart' show Keyword;
import 'ast.dart';
-import 'package:analyzer-experimental/src/generated/utilities_dart.dart';
+import 'engine.dart' show AnalysisContext;
+import 'utilities_dart.dart';
/**
* The interface {@code Annotation} defines the behavior of objects representing a single annotation
@@ -28,18 +29,23 @@
*/
abstract class ClassElement implements Element {
/**
- * Return an array containing all of the accessors (getters and setters) contained in this class.
- * @return the accessors contained in this class
+ * Return an array containing all of the accessors (getters and setters) declared in this class.
+ * @return the accessors declared in this class
*/
List<PropertyAccessorElement> get accessors;
/**
- * Return an array containing all of the constructors contained in this class.
- * @return the constructors contained in this class
+ * Return an array containing all the supertypes defined for this class and its supertypes.
+ * @return all the supertypes of this class, including mixins
*/
+ List<InterfaceType> get allSupertypes;
+ /**
+ * Return an array containing all of the constructors declared in this class.
+ * @return the constructors declared in this class
+ */
List<ConstructorElement> get constructors;
/**
- * Return an array containing all of the fields contained in this class.
- * @return the fields contained in this class
+ * Return an array containing all of the fields declared in this class.
+ * @return the fields declared in this class
*/
List<FieldElement> get fields;
/**
@@ -48,8 +54,8 @@
*/
List<InterfaceType> get interfaces;
/**
- * Return an array containing all of the methods contained in this class.
- * @return the methods contained in this class
+ * Return an array containing all of the methods declared in this class.
+ * @return the methods declared in this class
*/
List<MethodElement> get methods;
/**
@@ -59,6 +65,13 @@
*/
List<InterfaceType> get mixins;
/**
+ * Return the named constructor declared in this class with the given name, or {@code null} if
+ * this class does not declare a named constructor with the given name.
+ * @param name the name of the constructor to be returned
+ * @return the element representing the specified constructor
+ */
+ ConstructorElement getNamedConstructor(String name);
+ /**
* Return the superclass of this class, or {@code null} if the class represents the class
* 'Object'. All other classes will have a non-{@code null} superclass. If the superclass was not
* explicitly declared then the implicit superclass 'Object' will be returned.
@@ -71,16 +84,83 @@
*/
InterfaceType get type;
/**
- * Return an array containing all of the type variables defined for this class.
- * @return the type variables defined for this class
+ * Return an array containing all of the type variables declared for this class.
+ * @return the type variables declared for this class
*/
List<TypeVariableElement> get typeVariables;
/**
+ * Return the unnamed constructor declared in this class, or {@code null} if this class does not
+ * declare an unnamed constructor but does declare named constructors. The returned constructor
+ * will be synthetic if this class does not declare any constructors, in which case it will
+ * represent the default constructor for the class.
+ * @return the unnamed constructor defined in this class
+ */
+ ConstructorElement get unnamedConstructor;
+ /**
* Return {@code true} if this class is abstract. A class is abstract if it has an explicit{@code abstract} modifier. Note, that this definition of <i>abstract</i> is different from
* <i>has unimplemented members</i>.
* @return {@code true} if this class is abstract
*/
bool isAbstract();
+ /**
+ * Return the element representing the getter that results from looking up the given getter in
+ * this class with respect to the given library, or {@code null} if the look up fails. The
+ * behavior of this method is defined by the Dart Language Specification in section 12.15.1:
+ * <blockquote> The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i>
+ * with respect to library <i>L</i> is:
+ * <ul>
+ * <li>If <i>C</i> declares an instance getter (respectively setter) named <i>m</i> that is
+ * accessible to <i>L</i>, then that getter (respectively setter) is the result of the lookup.
+ * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lookup is the result
+ * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respect to <i>L</i>.
+ * Otherwise, we say that the lookup has failed.</li>
+ * </ul>
+ * </blockquote>
+ * @param getterName the name of the getter being looked up
+ * @param library the library with respect to which the lookup is being performed
+ * @return the result of looking up the given getter in this class with respect to the given
+ * library
+ */
+ PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library);
+ /**
+ * Return the element representing the method that results from looking up the given method in
+ * this class with respect to the given library, or {@code null} if the look up fails. The
+ * behavior of this method is defined by the Dart Language Specification in section 12.15.1:
+ * <blockquote> The result of looking up method <i>m</i> in class <i>C</i> with respect to library
+ * <i>L</i> is:
+ * <ul>
+ * <li>If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then
+ * that method is the result of the lookup. Otherwise, if <i>C</i> has a superclass <i>S</i>, then
+ * the result of the lookup is the result of looking up method <i>m</i> in <i>S</i> with respect
+ * to <i>L</i>. Otherwise, we say that the lookup has failed.</li>
+ * </ul>
+ * </blockquote>
+ * @param methodName the name of the method being looked up
+ * @param library the library with respect to which the lookup is being performed
+ * @return the result of looking up the given method in this class with respect to the given
+ * library
+ */
+ MethodElement lookUpMethod(String methodName, LibraryElement library);
+ /**
+ * Return the element representing the setter that results from looking up the given setter in
+ * this class with respect to the given library, or {@code null} if the look up fails. The
+ * behavior of this method is defined by the Dart Language Specification in section 12.16:
+ * <blockquote> The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i>
+ * with respect to library <i>L</i> is:
+ * <ul>
+ * <li>If <i>C</i> declares an instance getter (respectively setter) named <i>m</i> that is
+ * accessible to <i>L</i>, then that getter (respectively setter) is the result of the lookup.
+ * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lookup is the result
+ * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respect to <i>L</i>.
+ * Otherwise, we say that the lookup has failed.</li>
+ * </ul>
+ * </blockquote>
+ * @param setterName the name of the setter being looked up
+ * @param library the library with respect to which the lookup is being performed
+ * @return the result of looking up the given setter in this class with respect to the given
+ * library
+ */
+ PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library);
}
/**
* The interface {@code CompilationUnitElement} defines the behavior of elements representing a
@@ -99,21 +179,11 @@
*/
LibraryElement get enclosingElement;
/**
- * Return an array containing all of the fields contained in this compilation unit.
- * @return the fields contained in this compilation unit
- */
- List<FieldElement> get fields;
- /**
* Return an array containing all of the top-level functions contained in this compilation unit.
* @return the top-level functions contained in this compilation unit
*/
List<FunctionElement> get functions;
/**
- * Return the source that corresponds to this compilation unit.
- * @return the source that corresponds to this compilation unit
- */
- Source get source;
- /**
* Return an array containing all of the type aliases contained in this compilation unit.
* @return the type aliases contained in this compilation unit
*/
@@ -123,6 +193,11 @@
* @return the classes contained in this compilation unit
*/
List<ClassElement> get types;
+ /**
+ * Return an array containing all of the variables contained in this compilation unit.
+ * @return the variables contained in this compilation unit
+ */
+ List<VariableElement> get variables;
}
/**
* The interface {@code ConstructorElement} defines the behavior of elements representing a
@@ -218,6 +293,21 @@
*/
int get nameOffset;
/**
+ * Return the source that contains this element, or {@code null} if this element is not contained
+ * in a source.
+ * @return the source that contains this element
+ */
+ Source get source;
+ /**
+ * Return {@code true} if this element, assuming that it is within scope, is accessible to code in
+ * the given library. This is defined by the Dart Language Specification in section 3.2:
+ * <blockquote> A declaration <i>m</i> is accessible to library <i>L</i> if <i>m</i> is declared
+ * in <i>L</i> or if <i>m</i> is public. </blockquote>
+ * @param library the library in which a possible reference to this element would occur
+ * @return {@code true} if this element is accessible to code in the given library
+ */
+ bool isAccessibleIn(LibraryElement library);
+ /**
* Return {@code true} if this element is synthetic. A synthetic element is an element that is not
* represented in the source code explicitly, but is implied by the source code, such as the
* default constructor for a class that does not explicitly define any constructors.
@@ -362,6 +452,19 @@
* The interface {@code FunctionElement} defines the behavior of elements representing a function.
*/
abstract class FunctionElement implements ExecutableElement {
+ /**
+ * Return a source range that covers the approximate portion of the source in which the name of
+ * this function is visible, or {@code null} if there is no single range of characters within
+ * which the variable's name is visible.
+ * <ul>
+ * <li>For a local function, this includes everything from the beginning of the function's body to
+ * the end of the block that encloses the function declaration.</li>
+ * <li>For top-level functions, {@code null} will be returned because they are potentially visible
+ * in multiple sources.</li>
+ * </ul>
+ * @return the range of characters in which the name of this function is visible
+ */
+ SourceRange get visibleRange;
}
/**
* The interface {@code HideCombinator} defines the behavior of combinators that cause some of the
@@ -386,11 +489,6 @@
* @return the libraries referenced from script tags in the HTML file
*/
List<LibraryElement> get libraries;
- /**
- * Return the source that corresponds to this HTML file.
- * @return the source that corresponds to this HTML file
- */
- Source get source;
}
/**
* The interface {@code ImportElement} defines the behavior of objects representing information
@@ -446,6 +544,11 @@
*/
FunctionElement get entryPoint;
/**
+ * Return an array containing all of the libraries that are exported from this library.
+ * @return an array containing all of the libraries that are exported from this library
+ */
+ List<LibraryElement> get exportedLibraries;
+ /**
* Return an array containing all of the exports defined in this library.
* @return the exports defined in this library
*/
@@ -474,6 +577,11 @@
* @return the prefixes used to {@code import} libraries into this library
*/
List<PrefixElement> get prefixes;
+ /**
+ * Answer {@code true} if this library is an application that can be run in the browser.
+ * @return {@code true} if this library is an application that can be run in the browser
+ */
+ bool isBrowserApplication();
}
/**
* The interface {@code MethodElement} defines the behavior of elements that represent a method
@@ -533,6 +641,11 @@
* @return the kind of this parameter
*/
ParameterKind get parameterKind;
+ /**
+ * Return {@code true} if this parameter is an initializing formal parameter.
+ * @return {@code true} if this parameter is an initializing formal parameter
+ */
+ bool isInitializingFormal();
}
/**
* The interface {@code PrefixElement} defines the behavior common to elements that represent a
@@ -664,6 +777,21 @@
*/
Type2 get type;
/**
+ * Return a source range that covers the approximate portion of the source in which the name of
+ * this variable is visible, or {@code null} if there is no single range of characters within
+ * which the variable's name is visible.
+ * <ul>
+ * <li>For a local variable, this includes everything from the end of the variable's initializer
+ * to the end of the block that encloses the variable declaration.</li>
+ * <li>For a parameter, this includes the body of the method or function that declares the
+ * parameter.</li>
+ * <li>For fields and top-level variables, {@code null} will be returned because they are
+ * potentially visible in multiple sources.</li>
+ * </ul>
+ * @return the range of characters in which the name of this variable is visible
+ */
+ SourceRange get visibleRange;
+ /**
* Return {@code true} if this variable is a const variable. Variables are const if they have been
* marked as being const using the {@code const} modifier.
* @return {@code true} if this variable is a const variable
@@ -697,6 +825,7 @@
this._element = element;
}
Element get element => _element;
+ String toString() => "@${_element.toString()}";
}
/**
* Instances of the class {@code ClassElementImpl} implement a {@code ClassElement}.
@@ -750,30 +879,35 @@
ClassElementImpl(Identifier name) : super.con1(name) {
}
List<PropertyAccessorElement> get accessors => _accessors;
- ElementImpl getChild(String identifier) {
+ List<InterfaceType> get allSupertypes {
+ Collection<InterfaceType> list = new Set<InterfaceType>();
+ collectAllSupertypes(list);
+ return new List.from(list);
+ }
+ ElementImpl getChild(String identifier19) {
for (PropertyAccessorElement accessor in _accessors) {
- if ((accessor as PropertyAccessorElementImpl).identifier == identifier) {
- return accessor as PropertyAccessorElementImpl;
+ if (((accessor as PropertyAccessorElementImpl)).identifier == identifier19) {
+ return (accessor as PropertyAccessorElementImpl);
}
}
for (ConstructorElement constructor in _constructors) {
- if ((constructor as ConstructorElementImpl).identifier == identifier) {
- return constructor as ConstructorElementImpl;
+ if (((constructor as ConstructorElementImpl)).identifier == identifier19) {
+ return (constructor as ConstructorElementImpl);
}
}
for (FieldElement field in _fields) {
- if ((field as FieldElementImpl).identifier == identifier) {
- return field as FieldElementImpl;
+ if (((field as FieldElementImpl)).identifier == identifier19) {
+ return (field as FieldElementImpl);
}
}
for (MethodElement method in _methods) {
- if ((method as MethodElementImpl).identifier == identifier) {
- return method as MethodElementImpl;
+ if (((method as MethodElementImpl)).identifier == identifier19) {
+ return (method as MethodElementImpl);
}
}
for (TypeVariableElement typeVariable in _typeVariables) {
- if ((typeVariable as TypeVariableElementImpl).identifier == identifier) {
- return typeVariable as TypeVariableElementImpl;
+ if (((typeVariable as TypeVariableElementImpl)).identifier == identifier19) {
danrubel 2013/02/13 20:28:51 extraneous parenthesis
+ return (typeVariable as TypeVariableElementImpl);
}
}
return null;
@@ -784,10 +918,103 @@
ElementKind get kind => ElementKind.CLASS;
List<MethodElement> get methods => _methods;
List<InterfaceType> get mixins => _mixins;
+ ConstructorElement getNamedConstructor(String name21) {
+ for (ConstructorElement element in constructors) {
+ String elementName = element.name;
+ if (elementName != null && elementName == name21) {
+ return element;
+ }
+ }
+ return null;
+ }
InterfaceType get supertype => _supertype;
InterfaceType get type => _type;
List<TypeVariableElement> get typeVariables => _typeVariables;
+ ConstructorElement get unnamedConstructor {
+ for (ConstructorElement element in constructors) {
+ String name10 = element.name;
+ if (name10 == null || name10.isEmpty) {
+ return element;
+ }
+ }
+ return null;
+ }
bool isAbstract() => hasModifier(Modifier.ABSTRACT);
+ PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library) {
+ PropertyAccessorElement element = getGetter(getterName);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ for (InterfaceType mixin in _mixins) {
+ ClassElement mixinElement = mixin.element;
+ if (mixinElement != null) {
+ element = ((mixinElement as ClassElementImpl)).getGetter(getterName);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ }
+ }
+ if (_supertype != null) {
+ ClassElement supertypeElement = _supertype.element;
+ if (supertypeElement != null) {
+ element = supertypeElement.lookUpGetter(getterName, library);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ }
+ }
+ return null;
+ }
+ MethodElement lookUpMethod(String methodName, LibraryElement library) {
+ MethodElement element = getMethod(methodName);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ for (InterfaceType mixin in _mixins) {
+ ClassElement mixinElement = mixin.element;
+ if (mixinElement != null) {
+ element = ((mixinElement as ClassElementImpl)).getMethod(methodName);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ }
+ }
+ if (_supertype != null) {
+ ClassElement supertypeElement = _supertype.element;
+ if (supertypeElement != null) {
+ element = supertypeElement.lookUpMethod(methodName, library);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ }
+ }
+ return null;
+ }
+ PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library) {
+ PropertyAccessorElement element = getSetter(setterName);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ for (InterfaceType mixin in _mixins) {
+ ClassElement mixinElement = mixin.element;
+ if (mixinElement != null) {
+ element = ((mixinElement as ClassElementImpl)).getSetter(setterName);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ }
+ }
+ if (_supertype != null) {
+ ClassElement supertypeElement = _supertype.element;
+ if (supertypeElement != null) {
+ element = supertypeElement.lookUpSetter(setterName, library);
+ if (element != null && element.isAccessibleIn(library)) {
+ return element;
+ }
+ }
+ }
+ return null;
+ }
/**
* Set whether this class is abstract to correspond to the given value.
* @param isAbstract {@code true} if the class is abstract
@@ -799,85 +1026,160 @@
* Set the accessors contained in this class to the given accessors.
* @param accessors the accessors contained in this class
*/
- void set accessors2(List<PropertyAccessorElement> accessors) {
- for (PropertyAccessorElement accessor in accessors) {
- (accessor as PropertyAccessorElementImpl).enclosingElement2 = this;
+ void set accessors(List<PropertyAccessorElement> accessors2) {
+ for (PropertyAccessorElement accessor in accessors2) {
+ ((accessor as PropertyAccessorElementImpl)).enclosingElement = this;
}
- this._accessors = accessors;
+ this._accessors = accessors2;
}
/**
* Set the constructors contained in this class to the given constructors.
* @param constructors the constructors contained in this class
*/
- void set constructors2(List<ConstructorElement> constructors) {
- for (ConstructorElement constructor in constructors) {
- (constructor as ConstructorElementImpl).enclosingElement2 = this;
+ void set constructors(List<ConstructorElement> constructors2) {
+ for (ConstructorElement constructor in constructors2) {
+ ((constructor as ConstructorElementImpl)).enclosingElement = this;
}
- this._constructors = constructors;
+ this._constructors = constructors2;
}
/**
* Set the fields contained in this class to the given fields.
* @param fields the fields contained in this class
*/
- void set fields3(List<FieldElement> fields) {
- for (FieldElement field in fields) {
- (field as FieldElementImpl).enclosingElement2 = this;
+ void set fields(List<FieldElement> fields2) {
+ for (FieldElement field in fields2) {
+ ((field as FieldElementImpl)).enclosingElement = this;
}
- this._fields = fields;
+ this._fields = fields2;
}
/**
* Set the interfaces that are implemented by this class to the given types.
* @param the interfaces that are implemented by this class
*/
- void set interfaces2(List<InterfaceType> interfaces) {
- this._interfaces = interfaces;
+ void set interfaces(List<InterfaceType> interfaces2) {
+ this._interfaces = interfaces2;
}
/**
* Set the methods contained in this class to the given methods.
* @param methods the methods contained in this class
*/
- void set methods2(List<MethodElement> methods) {
- for (MethodElement method in methods) {
- (method as MethodElementImpl).enclosingElement2 = this;
+ void set methods(List<MethodElement> methods2) {
+ for (MethodElement method in methods2) {
+ ((method as MethodElementImpl)).enclosingElement = this;
}
- this._methods = methods;
+ this._methods = methods2;
}
/**
* Set the mixins that are applied to the class being extended in order to derive the superclass
* of this class to the given types.
* @param mixins the mixins that are applied to derive the superclass of this class
*/
- void set mixins2(List<InterfaceType> mixins) {
- this._mixins = mixins;
+ void set mixins(List<InterfaceType> mixins2) {
+ this._mixins = mixins2;
}
/**
* Set the superclass of the class to the given type.
* @param supertype the superclass of the class
*/
- void set supertype2(InterfaceType supertype) {
- this._supertype = supertype;
+ void set supertype(InterfaceType supertype2) {
+ this._supertype = supertype2;
}
/**
* Set the type defined by the class to the given type.
* @param type the type defined by the class
*/
- void set type9(InterfaceType type) {
- this._type = type;
+ void set type(InterfaceType type4) {
+ this._type = type4;
}
/**
* Set the type variables defined for this class to the given type variables.
* @param typeVariables the type variables defined for this class
*/
- void set typeVariables2(List<TypeVariableElement> typeVariables) {
- for (TypeVariableElement typeVariable in typeVariables) {
- (typeVariable as TypeVariableElementImpl).enclosingElement2 = this;
+ void set typeVariables(List<TypeVariableElement> typeVariables2) {
+ for (TypeVariableElement typeVariable in typeVariables2) {
+ ((typeVariable as TypeVariableElementImpl)).enclosingElement = this;
}
- this._typeVariables = typeVariables;
+ this._typeVariables = typeVariables2;
}
- String toString() {
- String name15 = name;
- return name15 == null ? "<unnamed class>" : "class ${name15}";
+ void appendTo(StringBuffer builder) {
+ String name11 = name;
+ if (name11 == null) {
+ builder.add("{unnamed class}");
+ } else {
+ builder.add(name11);
+ }
+ int variableCount = _typeVariables.length;
+ if (variableCount > 0) {
+ builder.add("<");
+ for (int i = 0; i < variableCount; i++) {
+ if (i > 0) {
+ builder.add(", ");
+ }
+ ((_typeVariables[i] as TypeVariableElementImpl)).appendTo(builder);
+ }
+ builder.add(">");
+ }
}
+ void collectAllSupertypes(Collection<InterfaceType> list) {
+ if (_supertype == null || list.contains(_supertype)) {
+ return;
+ }
+ list.add(_supertype);
+ ((_supertype.element as ClassElementImpl)).collectAllSupertypes(list);
+ for (InterfaceType type in interfaces) {
+ if (!list.contains(type)) {
+ list.add(type);
+ ((type.element as ClassElementImpl)).collectAllSupertypes(list);
+ }
+ }
+ for (InterfaceType type in mixins) {
+ if (!list.contains(type)) {
+ list.add(type);
+ }
+ }
+ }
+ /**
+ * Return the element representing the getter with the given name that is declared in this class,
+ * or {@code null} if this class does not declare a getter with the given name.
+ * @param getterName the name of the getter to be returned
+ * @return the getter declared in this class with the given name
+ */
+ PropertyAccessorElement getGetter(String getterName) {
+ for (PropertyAccessorElement accessor in _accessors) {
+ if (accessor.isGetter() && accessor.name == getterName) {
+ return accessor;
+ }
+ }
+ return null;
+ }
+ /**
+ * Return the element representing the method with the given name that is declared in this class,
+ * or {@code null} if this class does not declare a method with the given name.
+ * @param methodName the name of the method to be returned
+ * @return the method declared in this class with the given name
+ */
+ MethodElement getMethod(String methodName) {
+ for (MethodElement method in _methods) {
+ if (method.name == methodName) {
+ return method;
+ }
+ }
+ return null;
+ }
+ /**
+ * Return the element representing the setter with the given name that is declared in this class,
+ * or {@code null} if this class does not declare a setter with the given name.
+ * @param setterName the name of the getter to be returned
+ * @return the getter declared in this class with the given name
+ */
+ PropertyAccessorElement getSetter(String setterName) {
+ for (PropertyAccessorElement accessor in _accessors) {
+ if (accessor.isSetter() && accessor.name == setterName) {
+ return accessor;
+ }
+ }
+ return null;
+ }
}
/**
* Instances of the class {@code CompilationUnitElementImpl} implement a{@link CompilationUnitElement}.
@@ -889,14 +1191,14 @@
*/
List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_ARRAY;
/**
- * An array containing all of the fields contained in this compilation unit.
- */
- List<FieldElement> _fields = FieldElementImpl.EMPTY_ARRAY;
- /**
* An array containing all of the top-level functions contained in this compilation unit.
*/
List<FunctionElement> _functions = FunctionElementImpl.EMPTY_ARRAY;
/**
+ * An array containing all of the variables contained in this compilation unit.
+ */
+ List<VariableElement> _variables = VariableElementImpl.EMPTY_ARRAY;
+ /**
* The source that corresponds to this compilation unit.
*/
Source _source;
@@ -918,103 +1220,110 @@
*/
CompilationUnitElementImpl(String name) : super.con2(name, -1) {
}
- bool operator ==(Object object) => this.runtimeType == object.runtimeType && _source == (object as CompilationUnitElementImpl).source;
+ bool operator ==(Object object) => identical(this.runtimeType, object.runtimeType) && _source == ((object as CompilationUnitElementImpl)).source;
List<PropertyAccessorElement> get accessors => _accessors;
- ElementImpl getChild(String identifier) {
+ ElementImpl getChild(String identifier20) {
for (PropertyAccessorElement accessor in _accessors) {
- if ((accessor as PropertyAccessorElementImpl).identifier == identifier) {
- return accessor as PropertyAccessorElementImpl;
+ if (((accessor as PropertyAccessorElementImpl)).identifier == identifier20) {
+ return (accessor as PropertyAccessorElementImpl);
}
}
- for (FieldElement field in _fields) {
- if ((field as FieldElementImpl).identifier == identifier) {
- return field as FieldElementImpl;
+ for (VariableElement variable in _variables) {
+ if (((variable as VariableElementImpl)).identifier == identifier20) {
+ return (variable as VariableElementImpl);
}
}
for (ExecutableElement function in _functions) {
- if ((function as ExecutableElementImpl).identifier == identifier) {
- return function as ExecutableElementImpl;
+ if (((function as ExecutableElementImpl)).identifier == identifier20) {
+ return (function as ExecutableElementImpl);
}
}
for (TypeAliasElement typeAlias in _typeAliases) {
- if ((typeAlias as TypeAliasElementImpl).identifier == identifier) {
- return typeAlias as TypeAliasElementImpl;
+ if (((typeAlias as TypeAliasElementImpl)).identifier == identifier20) {
+ return (typeAlias as TypeAliasElementImpl);
}
}
for (ClassElement type in _types) {
- if ((type as ClassElementImpl).identifier == identifier) {
- return type as ClassElementImpl;
+ if (((type as ClassElementImpl)).identifier == identifier20) {
+ return (type as ClassElementImpl);
}
}
return null;
}
- LibraryElement get enclosingElement => super.enclosingElement as LibraryElement;
- List<FieldElement> get fields => _fields;
+ LibraryElement get enclosingElement => (super.enclosingElement as LibraryElement);
List<FunctionElement> get functions => _functions;
String get identifier => source.fullName;
ElementKind get kind => ElementKind.COMPILATION_UNIT;
Source get source => _source;
List<TypeAliasElement> get typeAliases => _typeAliases;
List<ClassElement> get types => _types;
+ List<VariableElement> get variables => _variables;
int get hashCode => _source.hashCode;
/**
* Set the top-level accessors (getters and setters) contained in this compilation unit to the
* given accessors.
* @param the top-level accessors (getters and setters) contained in this compilation unit
*/
- void set accessors3(List<PropertyAccessorElement> accessors) {
- for (PropertyAccessorElement accessor in accessors) {
- (accessor as PropertyAccessorElementImpl).enclosingElement2 = this;
+ void set accessors(List<PropertyAccessorElement> accessors3) {
+ for (PropertyAccessorElement accessor in accessors3) {
+ ((accessor as PropertyAccessorElementImpl)).enclosingElement = this;
}
- this._accessors = accessors;
+ this._accessors = accessors3;
}
/**
- * Set the fields contained in this compilation unit to the given fields.
- * @param fields the fields contained in this compilation unit
- */
- void set fields4(List<FieldElement> fields) {
- for (FieldElement field in fields) {
- (field as FieldElementImpl).enclosingElement2 = this;
- }
- this._fields = fields;
- }
- /**
* Set the top-level functions contained in this compilation unit to the given functions.
* @param functions the top-level functions contained in this compilation unit
*/
- void set functions2(List<FunctionElement> functions) {
- for (FunctionElement function in functions) {
- (function as FunctionElementImpl).enclosingElement2 = this;
+ void set functions(List<FunctionElement> functions2) {
+ for (FunctionElement function in functions2) {
+ ((function as FunctionElementImpl)).enclosingElement = this;
}
- this._functions = functions;
+ this._functions = functions2;
}
/**
* Set the source that corresponds to this compilation unit to the given source.
* @param source the source that corresponds to this compilation unit
*/
- void set source3(Source source) {
- this._source = source;
+ void set source(Source source5) {
+ this._source = source5;
}
/**
* Set the type aliases contained in this compilation unit to the given type aliases.
* @param typeAliases the type aliases contained in this compilation unit
*/
- void set typeAliases2(List<TypeAliasElement> typeAliases) {
- for (TypeAliasElement typeAlias in typeAliases) {
- (typeAlias as TypeAliasElementImpl).enclosingElement2 = this;
+ void set typeAliases(List<TypeAliasElement> typeAliases2) {
+ for (TypeAliasElement typeAlias in typeAliases2) {
+ ((typeAlias as TypeAliasElementImpl)).enclosingElement = this;
}
- this._typeAliases = typeAliases;
+ this._typeAliases = typeAliases2;
}
/**
* Set the types contained in this compilation unit to the given types.
* @param types types contained in this compilation unit
*/
- void set types2(List<ClassElement> types) {
- for (ClassElement type in types) {
- (type as ClassElementImpl).enclosingElement2 = this;
+ void set types(List<ClassElement> types2) {
+ for (ClassElement type in types2) {
+ ((type as ClassElementImpl)).enclosingElement = this;
}
- this._types = types;
+ this._types = types2;
}
+ /**
+ * Set the variables contained in this compilation unit to the given variables.
+ * @param variables the variables contained in this compilation unit
+ */
+ void set variables(List<VariableElement> variables2) {
+ for (VariableElement field in variables2) {
+ ((field as VariableElementImpl)).enclosingElement = this;
+ }
+ this._variables = variables2;
+ }
+ void appendTo(StringBuffer builder) {
+ if (_source == null) {
+ builder.add("{compilation unit}");
+ } else {
+ builder.add(_source.fullName);
+ }
+ }
}
/**
* Instances of the class {@code ConstructorElementImpl} implement a {@code ConstructorElement}.
@@ -1030,7 +1339,7 @@
*/
ConstructorElementImpl(Identifier name) : super.con1(name) {
}
- ClassElement get enclosingElement => super.enclosingElement as ClassElement;
+ ClassElement get enclosingElement => (super.enclosingElement as ClassElement);
ElementKind get kind => ElementKind.CONSTRUCTOR;
bool isConst() => hasModifier(Modifier.CONST);
bool isFactory() => hasModifier(Modifier.FACTORY);
@@ -1041,6 +1350,15 @@
void set factory(bool isFactory) {
setModifier(Modifier.FACTORY, isFactory);
}
+ void appendTo(StringBuffer builder) {
+ builder.add(enclosingElement.name);
+ String name12 = name;
+ if (name12 != null && !name12.isEmpty) {
+ builder.add(".");
+ builder.add(name12);
+ }
+ super.appendTo(builder);
+ }
}
/**
* Instances of the class {@code DynamicElementImpl} represent the synthetic element representing
@@ -1048,13 +1366,18 @@
*/
class DynamicElementImpl extends ElementImpl {
/**
+ * Return the unique instance of this class.
+ * @return the unique instance of this class
+ */
+ static DynamicElementImpl get instance => (DynamicTypeImpl.instance.element as DynamicElementImpl);
+ /**
* The type defined by this element.
*/
DynamicTypeImpl _type;
/**
* Initialize a newly created instance of this class. Instances of this class should <b>not</b> be
* created except as part of creating the type associated with this element. The single instance
- * of this class should be accessed through the single instance of the class{@link DynamicTypeImpl}.
+ * of this class should be accessed through the method {@link #getInstance()}.
*/
DynamicElementImpl() : super.con2(Keyword.DYNAMIC.syntax, -1) {
setModifier(Modifier.SYNTHETIC, true);
@@ -1069,8 +1392,8 @@
* Set the type defined by this element to the given type.
* @param type the type defined by this element
*/
- void set type10(DynamicTypeImpl type) {
- this._type = type;
+ void set type(DynamicTypeImpl type5) {
+ this._type = type5;
}
}
/**
@@ -1104,11 +1427,11 @@
* Initialize a newly created element to have the given name.
* @param name the name of this element
*/
- ElementImpl.con1(Identifier name) {
- _jtd_constructor_129_impl(name);
+ ElementImpl.con1(Identifier name22) {
+ _jtd_constructor_135_impl(name22);
}
- _jtd_constructor_129_impl(Identifier name) {
- _jtd_constructor_130_impl(name == null ? "" : name.name, name == null ? -1 : name.offset);
+ _jtd_constructor_135_impl(Identifier name22) {
+ _jtd_constructor_136_impl(name22 == null ? "" : name22.name, name22 == null ? -1 : name22.offset);
}
/**
* Initialize a newly created element to have the given name.
@@ -1116,21 +1439,21 @@
* @param nameOffset the offset of the name of this element in the file that contains the
* declaration of this element
*/
- ElementImpl.con2(String name, int nameOffset) {
- _jtd_constructor_130_impl(name, nameOffset);
+ ElementImpl.con2(String name8, int nameOffset2) {
+ _jtd_constructor_136_impl(name8, nameOffset2);
}
- _jtd_constructor_130_impl(String name, int nameOffset) {
- this._name = name;
- this._nameOffset = nameOffset;
+ _jtd_constructor_136_impl(String name8, int nameOffset2) {
+ this._name = name8;
+ this._nameOffset = nameOffset2;
this._modifiers = new Set();
}
- bool operator ==(Object object) => object is Element && (object as Element).location == location;
+ bool operator ==(Object object) => object is Element && ((object as Element)).location == location;
Element getAncestor(Type elementClass) {
Element ancestor = _enclosingElement;
while (ancestor != null && !isInstanceOf(ancestor, elementClass)) {
ancestor = ancestor.enclosingElement;
}
- return ancestor as Element;
+ return (ancestor as Element);
}
/**
* Return the child of this element that is uniquely identified by the given identifier, or{@code null} if there is no such child.
@@ -1150,14 +1473,26 @@
List<Annotation> get metadata => _metadata;
String get name => _name;
int get nameOffset => _nameOffset;
+ Source get source {
+ if (_enclosingElement == null) {
+ return null;
+ }
+ return _enclosingElement.source;
+ }
int get hashCode => location.hashCode;
+ bool isAccessibleIn(LibraryElement library18) {
+ if (Identifier.isPrivateName(_name)) {
+ return library18 == library;
+ }
+ return true;
+ }
bool isSynthetic() => hasModifier(Modifier.SYNTHETIC);
/**
* Set the metadata associate with this element to the given array of annotations.
* @param metadata the metadata to be associated with this element
*/
- void set metadata2(List<Annotation> metadata) {
- this._metadata = metadata;
+ void set metadata(List<Annotation> metadata2) {
+ this._metadata = metadata2;
}
/**
* Set whether this element is synthetic to correspond to the given value.
@@ -1166,7 +1501,25 @@
void set synthetic(bool isSynthetic) {
setModifier(Modifier.SYNTHETIC, isSynthetic);
}
+ String toString() {
+ StringBuffer builder = new StringBuffer();
+ appendTo(builder);
+ return builder.toString();
+ }
/**
+ * Append a textual representation of this type to the given builder.
+ * @param builder the builder to which the text is to be appended
+ */
+ void appendTo(StringBuffer builder) {
+ if (_name == null) {
+ builder.add("<unnamed ");
+ builder.add(runtimeType.toString());
+ builder.add(">");
+ } else {
+ builder.add(_name);
+ }
+ }
+ /**
* Return an identifier that uniquely identifies this element among the children of this element's
* parent.
* @return an identifier that uniquely identifies this element relative to its parent
@@ -1182,7 +1535,7 @@
* Set the enclosing element of this element to the given element.
* @param element the enclosing element of this element
*/
- void set enclosingElement2(ElementImpl element) {
+ void set enclosingElement(ElementImpl element) {
_enclosingElement = element;
}
/**
@@ -1210,19 +1563,19 @@
/**
* The character used to separate components in the encoded form.
*/
- static int _SEPARATOR_CHAR = 0x3b;
+ static int _SEPARATOR_CHAR = 0x3B;
/**
* Initialize a newly created location to represent the given element.
* @param element the element whose location is being represented
*/
ElementLocationImpl.con1(Element element) {
- _jtd_constructor_131_impl(element);
+ _jtd_constructor_137_impl(element);
}
- _jtd_constructor_131_impl(Element element) {
+ _jtd_constructor_137_impl(Element element) {
List<String> components = new List<String>();
Element ancestor = element;
while (ancestor != null) {
- components.insertRange(0, 1, (ancestor as ElementImpl).identifier);
+ components.insertRange(0, 1, ((ancestor as ElementImpl)).identifier);
ancestor = ancestor.enclosingElement;
}
this._components = new List.from(components);
@@ -1232,16 +1585,16 @@
* @param encoding the encoded form of a location
*/
ElementLocationImpl.con2(String encoding) {
- _jtd_constructor_132_impl(encoding);
+ _jtd_constructor_138_impl(encoding);
}
- _jtd_constructor_132_impl(String encoding) {
+ _jtd_constructor_138_impl(String encoding) {
this._components = decode(encoding);
}
bool operator ==(Object object) {
if (object is! ElementLocationImpl) {
return false;
}
- ElementLocationImpl location = object as ElementLocationImpl;
+ ElementLocationImpl location = (object as ElementLocationImpl);
return JavaArrays.equals(_components, location._components);
}
/**
@@ -1254,13 +1607,14 @@
int length2 = _components.length;
for (int i = 0; i < length2; i++) {
if (i > 0) {
- builder.addCharCode(ElementLocationImpl._SEPARATOR_CHAR);
+ builder.addCharCode(_SEPARATOR_CHAR);
}
encode(builder, _components[i]);
}
return builder.toString();
}
int get hashCode => JavaArrays.makeHashCode(_components);
+ String toString() => encoding;
/**
* Decode the encoded form of a location into an array of components.
* @param encoding the encoded form of a location
@@ -1272,10 +1626,10 @@
int index = 0;
int length3 = encoding.length;
while (index < length3) {
- int currentChar = encoding.charCodeAt(index);
- if (currentChar == ElementLocationImpl._SEPARATOR_CHAR) {
- if (index + 1 < length3 && encoding.charCodeAt(index + 1) == ElementLocationImpl._SEPARATOR_CHAR) {
- builder.addCharCode(ElementLocationImpl._SEPARATOR_CHAR);
+ int currentChar = encoding.codeUnitAt(index);
+ if (currentChar == _SEPARATOR_CHAR) {
+ if (index + 1 < length3 && encoding.codeUnitAt(index + 1) == _SEPARATOR_CHAR) {
+ builder.addCharCode(_SEPARATOR_CHAR);
index += 2;
} else {
components.add(builder.toString());
@@ -1300,9 +1654,9 @@
void encode(StringBuffer builder, String component) {
int length4 = component.length;
for (int i = 0; i < length4; i++) {
- int currentChar = component.charCodeAt(i);
- if (currentChar == ElementLocationImpl._SEPARATOR_CHAR) {
- builder.addCharCode(ElementLocationImpl._SEPARATOR_CHAR);
+ int currentChar = component.codeUnitAt(i);
+ if (currentChar == _SEPARATOR_CHAR) {
+ builder.addCharCode(_SEPARATOR_CHAR);
}
builder.addCharCode(currentChar);
}
@@ -1341,9 +1695,9 @@
* @param name the name of this element
*/
ExecutableElementImpl.con1(Identifier name) : super.con1(name) {
- _jtd_constructor_133_impl(name);
+ _jtd_constructor_139_impl(name);
}
- _jtd_constructor_133_impl(Identifier name) {
+ _jtd_constructor_139_impl(Identifier name) {
}
/**
* Initialize a newly created executable element to have the given name.
@@ -1352,29 +1706,29 @@
* declaration of this element
*/
ExecutableElementImpl.con2(String name, int nameOffset) : super.con2(name, nameOffset) {
- _jtd_constructor_134_impl(name, nameOffset);
+ _jtd_constructor_140_impl(name, nameOffset);
}
- _jtd_constructor_134_impl(String name, int nameOffset) {
+ _jtd_constructor_140_impl(String name, int nameOffset) {
}
- ElementImpl getChild(String identifier) {
+ ElementImpl getChild(String identifier21) {
for (ExecutableElement function in _functions) {
- if ((function as ExecutableElementImpl).identifier == identifier) {
- return function as ExecutableElementImpl;
+ if (((function as ExecutableElementImpl)).identifier == identifier21) {
+ return (function as ExecutableElementImpl);
}
}
for (LabelElement label in _labels) {
- if ((label as LabelElementImpl).identifier == identifier) {
- return label as LabelElementImpl;
+ if (((label as LabelElementImpl)).identifier == identifier21) {
+ return (label as LabelElementImpl);
}
}
for (VariableElement variable in _localVariables) {
- if ((variable as VariableElementImpl).identifier == identifier) {
- return variable as VariableElementImpl;
+ if (((variable as VariableElementImpl)).identifier == identifier21) {
+ return (variable as VariableElementImpl);
}
}
for (ParameterElement parameter in _parameters) {
- if ((parameter as ParameterElementImpl).identifier == identifier) {
- return parameter as ParameterElementImpl;
+ if (((parameter as ParameterElementImpl)).identifier == identifier21) {
+ return (parameter as ParameterElementImpl);
}
}
return null;
@@ -1388,49 +1742,64 @@
* Set the functions defined within this executable element to the given functions.
* @param functions the functions defined within this executable element
*/
- void set functions3(List<ExecutableElement> functions) {
- for (ExecutableElement function in functions) {
- (function as ExecutableElementImpl).enclosingElement2 = this;
+ void set functions(List<ExecutableElement> functions3) {
+ for (ExecutableElement function in functions3) {
+ ((function as ExecutableElementImpl)).enclosingElement = this;
}
- this._functions = functions;
+ this._functions = functions3;
}
/**
* Set the labels defined within this executable element to the given labels.
* @param labels the labels defined within this executable element
*/
- void set labels2(List<LabelElement> labels) {
- for (LabelElement label in labels) {
- (label as LabelElementImpl).enclosingElement2 = this;
+ void set labels(List<LabelElement> labels2) {
+ for (LabelElement label in labels2) {
+ ((label as LabelElementImpl)).enclosingElement = this;
}
- this._labels = labels;
+ this._labels = labels2;
}
/**
* Set the local variables defined within this executable element to the given variables.
* @param localVariables the local variables defined within this executable element
*/
- void set localVariables2(List<VariableElement> localVariables) {
- for (VariableElement variable in localVariables) {
- (variable as VariableElementImpl).enclosingElement2 = this;
+ void set localVariables(List<VariableElement> localVariables2) {
+ for (VariableElement variable in localVariables2) {
+ ((variable as VariableElementImpl)).enclosingElement = this;
}
- this._localVariables = localVariables;
+ this._localVariables = localVariables2;
}
/**
* Set the parameters defined by this executable element to the given parameters.
* @param parameters the parameters defined by this executable element
*/
- void set parameters7(List<ParameterElement> parameters) {
- for (ParameterElement parameter in parameters) {
- (parameter as ParameterElementImpl).enclosingElement2 = this;
+ void set parameters(List<ParameterElement> parameters7) {
+ for (ParameterElement parameter in parameters7) {
+ ((parameter as ParameterElementImpl)).enclosingElement = this;
}
- this._parameters = parameters;
+ this._parameters = parameters7;
}
/**
* Set the type of function defined by this executable element to the given type.
* @param type the type of function defined by this executable element
*/
- void set type11(FunctionType type) {
- this._type = type;
+ void set type(FunctionType type6) {
+ this._type = type6;
}
+ void appendTo(StringBuffer builder) {
+ builder.add("(");
+ int parameterCount = _parameters.length;
+ for (int i = 0; i < parameterCount; i++) {
+ if (i > 0) {
+ builder.add(", ");
+ }
+ ((_parameters[i] as ParameterElementImpl)).appendTo(builder);
+ }
+ builder.add(")");
+ if (_type != null) {
+ builder.add(" -> ");
+ builder.add(_type.returnType);
+ }
+ }
}
/**
* Instances of the class {@code ExportElementImpl} implement an {@link ExportElement}.
@@ -1458,17 +1827,21 @@
* combinators.
* @param combinators the combinators that were specified as part of the export directive
*/
- void set combinators2(List<NamespaceCombinator> combinators) {
- this._combinators = combinators;
+ void set combinators(List<NamespaceCombinator> combinators2) {
+ this._combinators = combinators2;
}
/**
* Set the library that is exported from this library by this import directive to the given
* library.
* @param exportedLibrary the library that is exported from this library
*/
- void set exportedLibrary2(LibraryElement exportedLibrary) {
- this._exportedLibrary = exportedLibrary;
+ void set exportedLibrary(LibraryElement exportedLibrary2) {
+ this._exportedLibrary = exportedLibrary2;
}
+ void appendTo(StringBuffer builder) {
+ builder.add("export ");
+ ((_exportedLibrary as LibraryElementImpl)).appendTo(builder);
+ }
}
/**
* Instances of the class {@code FieldElementImpl} implement a {@code FieldElement}.
@@ -1491,18 +1864,18 @@
* @param name the name of this element
*/
FieldElementImpl.con1(Identifier name) : super.con1(name) {
- _jtd_constructor_136_impl(name);
+ _jtd_constructor_142_impl(name);
}
- _jtd_constructor_136_impl(Identifier name) {
+ _jtd_constructor_142_impl(Identifier name) {
}
/**
* Initialize a newly created synthetic field element to have the given name.
* @param name the name of this element
*/
FieldElementImpl.con2(String name) : super.con2(name, -1) {
- _jtd_constructor_137_impl(name);
+ _jtd_constructor_143_impl(name);
}
- _jtd_constructor_137_impl(String name) {
+ _jtd_constructor_143_impl(String name) {
synthetic = true;
}
PropertyAccessorElement get getter => _getter;
@@ -1513,15 +1886,15 @@
* Set the getter associated with this field to the given accessor.
* @param getter the getter associated with this field
*/
- void set getter2(PropertyAccessorElement getter) {
- this._getter = getter;
+ void set getter(PropertyAccessorElement getter2) {
+ this._getter = getter2;
}
/**
* Set the setter associated with this field to the given accessor.
* @param setter the setter associated with this field
*/
- void set setter2(PropertyAccessorElement setter) {
- this._setter = setter;
+ void set setter(PropertyAccessorElement setter2) {
+ this._setter = setter2;
}
/**
* Set whether this field is static to correspond to the given value.
@@ -1530,13 +1903,21 @@
void set static(bool isStatic) {
setModifier(Modifier.STATIC, isStatic);
}
- String toString() => "field ${type} ${name}";
}
/**
* Instances of the class {@code FunctionElementImpl} implement a {@code FunctionElement}.
*/
class FunctionElementImpl extends ExecutableElementImpl implements FunctionElement {
/**
+ * The offset to the beginning of the visible range for this element.
+ */
+ int _visibleRangeOffset = 0;
+ /**
+ * The length of the visible range for this element, or {@code -1} if this element does not have a
+ * visible range.
+ */
+ int _visibleRangeLength = -1;
+ /**
* An empty array of function elements.
*/
static List<FunctionElement> EMPTY_ARRAY = new List<FunctionElement>.fixedLength(0);
@@ -1544,9 +1925,9 @@
* Initialize a newly created synthetic function element.
*/
FunctionElementImpl() : super.con2("", -1) {
- _jtd_constructor_138_impl();
+ _jtd_constructor_144_impl();
}
- _jtd_constructor_138_impl() {
+ _jtd_constructor_144_impl() {
synthetic = true;
}
/**
@@ -1554,12 +1935,36 @@
* @param name the name of this element
*/
FunctionElementImpl.con1(Identifier name) : super.con1(name) {
- _jtd_constructor_139_impl(name);
+ _jtd_constructor_145_impl(name);
}
- _jtd_constructor_139_impl(Identifier name) {
+ _jtd_constructor_145_impl(Identifier name) {
}
String get identifier => name;
ElementKind get kind => ElementKind.FUNCTION;
+ SourceRange get visibleRange {
+ if (_visibleRangeLength < 0) {
+ return null;
+ }
+ return new SourceRange(_visibleRangeOffset, _visibleRangeLength);
+ }
+ /**
+ * Set the visible range for this element to the range starting at the given offset with the given
+ * length.
+ * @param offset the offset to the beginning of the visible range for this element
+ * @param length the length of the visible range for this element, or {@code -1} if this element
+ * does not have a visible range
+ */
+ void setVisibleRange(int offset, int length) {
+ _visibleRangeOffset = offset;
+ _visibleRangeLength = length;
+ }
+ void appendTo(StringBuffer builder) {
+ String name13 = name;
+ if (name13 != null) {
+ builder.add(name13);
+ }
+ super.appendTo(builder);
+ }
}
/**
* Instances of the class {@code ShowCombinatorImpl} implement a {@link ShowCombinator}.
@@ -1581,9 +1986,21 @@
* in the imported library to the given names.
* @param hiddenNames the names that are not to be made visible in the importing library
*/
- void set hiddenNames2(List<String> hiddenNames) {
- this._hiddenNames = hiddenNames;
+ void set hiddenNames(List<String> hiddenNames2) {
+ this._hiddenNames = hiddenNames2;
}
+ String toString() {
+ StringBuffer builder = new StringBuffer();
+ builder.add("show ");
+ int count = _hiddenNames.length;
+ for (int i = 0; i < count; i++) {
+ if (i > 0) {
+ builder.add(", ");
+ }
+ builder.add(_hiddenNames[i]);
+ }
+ return builder.toString();
+ }
}
/**
* Instances of the class {@code HtmlElementImpl} implement an {@link HtmlElement}.
@@ -1613,7 +2030,7 @@
HtmlElementImpl(AnalysisContext context, String name) : super.con2(name, -1) {
this._context = context;
}
- bool operator ==(Object object) => this.runtimeType == object.runtimeType && _source == (object as CompilationUnitElementImpl).source;
+ bool operator ==(Object object) => identical(this.runtimeType, object.runtimeType) && _source == ((object as CompilationUnitElementImpl)).source;
AnalysisContext get context => _context;
ElementKind get kind => ElementKind.HTML;
List<LibraryElement> get libraries => _libraries;
@@ -1624,16 +2041,23 @@
* libraries.
* @param libraries the libraries contained in or referenced from script tags in the HTML file
*/
- void set libraries2(List<LibraryElement> libraries) {
- this._libraries = libraries;
+ void set libraries(List<LibraryElement> libraries2) {
+ this._libraries = libraries2;
}
/**
* Set the source that corresponds to this HTML file to the given source.
* @param source the source that corresponds to this HTML file
*/
- void set source4(Source source) {
- this._source = source;
+ void set source(Source source6) {
+ this._source = source6;
}
+ void appendTo(StringBuffer builder) {
+ if (_source == null) {
+ builder.add("{HTML file}");
+ } else {
+ builder.add(_source.fullName);
+ }
+ }
}
/**
* Instances of the class {@code ImportElementImpl} implement an {@link ImportElement}.
@@ -1667,24 +2091,28 @@
* combinators.
* @param combinators the combinators that were specified as part of the import directive
*/
- void set combinators3(List<NamespaceCombinator> combinators) {
- this._combinators = combinators;
+ void set combinators(List<NamespaceCombinator> combinators3) {
+ this._combinators = combinators3;
}
/**
* Set the library that is imported into this library by this import directive to the given
* library.
* @param importedLibrary the library that is imported into this library
*/
- void set importedLibrary2(LibraryElement importedLibrary) {
- this._importedLibrary = importedLibrary;
+ void set importedLibrary(LibraryElement importedLibrary3) {
+ this._importedLibrary = importedLibrary3;
}
/**
* Set the prefix that was specified as part of the import directive to the given prefix.
* @param prefix the prefix that was specified as part of the import directive
*/
- void set prefix4(PrefixElement prefix) {
- this._prefix = prefix;
+ void set prefix(PrefixElement prefix3) {
+ this._prefix = prefix3;
}
+ void appendTo(StringBuffer builder) {
+ builder.add("import ");
+ ((_importedLibrary as LibraryElementImpl)).appendTo(builder);
+ }
}
/**
* Instances of the class {@code LabelElementImpl} implement a {@code LabelElement}.
@@ -1712,7 +2140,7 @@
this._onSwitchStatement = onSwitchStatement;
this._onSwitchMember = onSwitchMember;
}
- ExecutableElement get enclosingElement => super.enclosingElement as ExecutableElement;
+ ExecutableElement get enclosingElement => (super.enclosingElement as ExecutableElement);
ElementKind get kind => ElementKind.LABEL;
/**
* Return {@code true} if this label is associated with a {@code switch} member ({@code case} or{@code default}).
@@ -1765,14 +2193,14 @@
LibraryElementImpl(AnalysisContext context, LibraryIdentifier name) : super.con1(name) {
this._context = context;
}
- bool operator ==(Object object) => this.runtimeType == object.runtimeType && _definingCompilationUnit == (object as LibraryElementImpl).definingCompilationUnit;
- ElementImpl getChild(String identifier) {
- if ((_definingCompilationUnit as CompilationUnitElementImpl).identifier == identifier) {
- return _definingCompilationUnit as CompilationUnitElementImpl;
+ bool operator ==(Object object) => identical(this.runtimeType, object.runtimeType) && _definingCompilationUnit == ((object as LibraryElementImpl)).definingCompilationUnit;
+ ElementImpl getChild(String identifier22) {
+ if (((_definingCompilationUnit as CompilationUnitElementImpl)).identifier == identifier22) {
+ return (_definingCompilationUnit as CompilationUnitElementImpl);
}
for (CompilationUnitElement part in _parts) {
- if ((part as CompilationUnitElementImpl).identifier == identifier) {
- return part as CompilationUnitElementImpl;
+ if (((part as CompilationUnitElementImpl)).identifier == identifier22) {
+ return (part as CompilationUnitElementImpl);
}
}
return null;
@@ -1780,6 +2208,14 @@
AnalysisContext get context => _context;
CompilationUnitElement get definingCompilationUnit => _definingCompilationUnit;
FunctionElement get entryPoint => _entryPoint;
+ List<LibraryElement> get exportedLibraries {
+ Set<LibraryElement> libraries = new Set<LibraryElement>();
+ for (ExportElement element in _exports) {
+ LibraryElement library = element.exportedLibrary;
+ javaSetAdd(libraries, library);
+ }
+ return new List.from(libraries);
+ }
List<ExportElement> get exports => _exports;
String get identifier => _definingCompilationUnit.source.fullName;
List<LibraryElement> get importedLibraries {
@@ -1796,54 +2232,82 @@
List<PrefixElement> get prefixes {
Set<PrefixElement> prefixes = new Set<PrefixElement>();
for (ImportElement element in _imports) {
- PrefixElement prefix5 = element.prefix;
- if (prefix5 != null) {
- javaSetAdd(prefixes, prefix5);
+ PrefixElement prefix4 = element.prefix;
+ if (prefix4 != null) {
+ javaSetAdd(prefixes, prefix4);
}
}
return new List.from(prefixes);
}
int get hashCode => _definingCompilationUnit.hashCode;
+ bool isBrowserApplication() => _entryPoint != null && isOrImportsBrowserLibrary();
/**
* Set the compilation unit that defines this library to the given compilation unit.
* @param definingCompilationUnit the compilation unit that defines this library
*/
- void set definingCompilationUnit2(CompilationUnitElement definingCompilationUnit) {
- (definingCompilationUnit as CompilationUnitElementImpl).enclosingElement2 = this;
- this._definingCompilationUnit = definingCompilationUnit;
+ void set definingCompilationUnit(CompilationUnitElement definingCompilationUnit2) {
+ ((definingCompilationUnit2 as CompilationUnitElementImpl)).enclosingElement = this;
+ this._definingCompilationUnit = definingCompilationUnit2;
}
/**
* Set the entry point for this library to the given function.
* @param entryPoint the entry point for this library
*/
- void set entryPoint2(FunctionElement entryPoint) {
- (entryPoint as FunctionElementImpl).enclosingElement2 = this;
- this._entryPoint = entryPoint;
+ void set entryPoint(FunctionElement entryPoint2) {
+ ((entryPoint2 as FunctionElementImpl)).enclosingElement = this;
+ this._entryPoint = entryPoint2;
}
/**
* Set the specifications of all of the exports defined in this library to the given array.
* @param exports the specifications of all of the exports defined in this library
*/
- void set exports2(List<ExportElement> exports) {
- this._exports = exports;
+ void set exports(List<ExportElement> exports2) {
+ this._exports = exports2;
}
/**
* Set the specifications of all of the imports defined in this library to the given array.
* @param imports the specifications of all of the imports defined in this library
*/
- void set imports2(List<ImportElement> imports) {
- this._imports = imports;
+ void set imports(List<ImportElement> imports2) {
+ this._imports = imports2;
}
/**
* Set the compilation units that are included in this library using a {@code part} directive.
* @param parts the compilation units that are included in this library using a {@code part}directive
*/
- void set parts2(List<CompilationUnitElement> parts) {
- for (CompilationUnitElement compilationUnit in parts) {
- (compilationUnit as CompilationUnitElementImpl).enclosingElement2 = this;
+ void set parts(List<CompilationUnitElement> parts2) {
+ for (CompilationUnitElement compilationUnit in parts2) {
+ ((compilationUnit as CompilationUnitElementImpl)).enclosingElement = this;
}
- this._parts = parts;
+ this._parts = parts2;
}
+ /**
+ * Answer {@code true} if the receiver directly or indirectly imports the dart:html libraries.
+ * @return {@code true} if the receiver directly or indirectly imports the dart:html libraries
+ */
+ bool isOrImportsBrowserLibrary() {
+ List<LibraryElement> visited = new List<LibraryElement>(10);
+ Source htmlLibSource = definingCompilationUnit.source.resolve(DartSdk.DART_HTML);
+ visited.add(this);
+ for (int index = 0; index < visited.length; index++) {
+ LibraryElement library = visited[index];
+ Source source8 = library.definingCompilationUnit.source;
+ if (source8 == htmlLibSource) {
+ return true;
+ }
+ for (LibraryElement importedLibrary in library.importedLibraries) {
+ if (!visited.contains(importedLibrary)) {
+ visited.add(importedLibrary);
+ }
+ }
+ for (LibraryElement exportedLibrary in library.exportedLibraries) {
+ if (!visited.contains(exportedLibrary)) {
+ visited.add(exportedLibrary);
+ }
+ }
+ }
+ return false;
+ }
}
/**
* Instances of the class {@code MethodElementImpl} implement a {@code MethodElement}.
@@ -1857,9 +2321,23 @@
* Initialize a newly created method element to have the given name.
* @param name the name of this element
*/
- MethodElementImpl(Identifier name) : super.con1(name) {
+ MethodElementImpl.con1(Identifier name) : super.con1(name) {
+ _jtd_constructor_151_impl(name);
}
- ClassElement get enclosingElement => super.enclosingElement as ClassElement;
+ _jtd_constructor_151_impl(Identifier name) {
+ }
+ /**
+ * Initialize a newly created method element to have the given name.
+ * @param name the name of this element
+ * @param nameOffset the offset of the name of this element in the file that contains the
+ * declaration of this element
+ */
+ MethodElementImpl.con2(String name, int nameOffset) : super.con2(name, nameOffset) {
+ _jtd_constructor_152_impl(name, nameOffset);
+ }
+ _jtd_constructor_152_impl(String name, int nameOffset) {
+ }
+ ClassElement get enclosingElement => (super.enclosingElement as ClassElement);
ElementKind get kind => ElementKind.METHOD;
bool isAbstract() => hasModifier(Modifier.ABSTRACT);
bool isStatic() => hasModifier(Modifier.STATIC);
@@ -1877,19 +2355,16 @@
void set static(bool isStatic) {
setModifier(Modifier.STATIC, isStatic);
}
- String toString() {
- StringBuffer builder = new StringBuffer();
- builder.add("method ");
+ void appendTo(StringBuffer builder) {
builder.add(enclosingElement.name);
builder.add(".");
builder.add(name);
- builder.add(type);
- return builder.toString();
+ super.appendTo(builder);
}
}
/**
* The enumeration {@code Modifier} defines constants for all of the modifiers defined by the Dart
- * language.
+ * language and for a few additional flags that are useful.
*/
class Modifier {
static final Modifier ABSTRACT = new Modifier('ABSTRACT', 0);
@@ -1897,10 +2372,11 @@
static final Modifier FACTORY = new Modifier('FACTORY', 2);
static final Modifier FINAL = new Modifier('FINAL', 3);
static final Modifier GETTER = new Modifier('GETTER', 4);
- static final Modifier SETTER = new Modifier('SETTER', 5);
- static final Modifier STATIC = new Modifier('STATIC', 6);
- static final Modifier SYNTHETIC = new Modifier('SYNTHETIC', 7);
- static final List<Modifier> values = [ABSTRACT, CONST, FACTORY, FINAL, GETTER, SETTER, STATIC, SYNTHETIC];
+ static final Modifier INITIALIZING_FORMAL = new Modifier('INITIALIZING_FORMAL', 5);
+ static final Modifier SETTER = new Modifier('SETTER', 6);
+ static final Modifier STATIC = new Modifier('STATIC', 7);
+ static final Modifier SYNTHETIC = new Modifier('SYNTHETIC', 8);
+ static final List<Modifier> values = [ABSTRACT, CONST, FACTORY, FINAL, GETTER, INITIALIZING_FORMAL, SETTER, STATIC, SYNTHETIC];
final String __name;
final int __ordinal;
Modifier(this.__name, this.__ordinal) {
@@ -1944,7 +2420,29 @@
List<Annotation> get metadata => AnnotationImpl.EMPTY_ARRAY;
String get name => _name;
int get nameOffset => -1;
+ Source get source => null;
+ bool isAccessibleIn(LibraryElement library) {
+ for (Element element in _conflictingElements) {
+ if (element.isAccessibleIn(library)) {
+ return true;
+ }
+ }
+ return false;
+ }
bool isSynthetic() => true;
+ String toString() {
+ StringBuffer builder = new StringBuffer();
+ builder.add("[");
+ int count = _conflictingElements.length;
+ for (int i = 0; i < count; i++) {
+ if (i > 0) {
+ builder.add(", ");
+ }
+ ((_conflictingElements[i] as ElementImpl)).appendTo(builder);
+ }
+ builder.add("]");
+ return builder.toString();
+ }
/**
* Add the given element to the list of elements. If the element is a multiply-defined element,
* add all of the conflicting elements that it represents.
@@ -1953,7 +2451,7 @@
*/
void add(List<Element> elements, Element element) {
if (element is MultiplyDefinedElementImpl) {
- for (Element conflictingElement in (element as MultiplyDefinedElementImpl)._conflictingElements) {
+ for (Element conflictingElement in ((element as MultiplyDefinedElementImpl))._conflictingElements) {
elements.add(conflictingElement);
}
} else {
@@ -1995,14 +2493,29 @@
}
ElementKind get kind => ElementKind.PARAMETER;
ParameterKind get parameterKind => _parameterKind;
+ bool isInitializingFormal() => hasModifier(Modifier.INITIALIZING_FORMAL);
/**
+ * Set whether this parameter is an initializing formal parameter to match the given value.
+ * @param isInitializingFormal {@code true} if this parameter is an initializing formal parameter
+ */
+ void set initializingFormal(bool isInitializingFormal) {
+ setModifier(Modifier.INITIALIZING_FORMAL, isInitializingFormal);
+ }
+ /**
* Set the kind of this parameter to the given kind.
* @param parameterKind the new kind of this parameter
*/
- void set parameterKind2(ParameterKind parameterKind) {
- this._parameterKind = parameterKind;
+ void set parameterKind(ParameterKind parameterKind2) {
+ this._parameterKind = parameterKind2;
}
- String toString() => "parameter ${type} ${name} (${kind})";
+ void appendTo(StringBuffer builder) {
+ builder.add(type);
+ builder.add(" ");
+ builder.add(name);
+ builder.add(" (");
+ builder.add(kind);
+ builder.add(")");
+ }
}
/**
* Instances of the class {@code PrefixElementImpl} implement a {@code PrefixElement}.
@@ -2022,19 +2535,23 @@
*/
PrefixElementImpl(Identifier name) : super.con1(name) {
}
- LibraryElement get enclosingElement => super.enclosingElement as LibraryElement;
+ LibraryElement get enclosingElement => (super.enclosingElement as LibraryElement);
List<LibraryElement> get importedLibraries => _importedLibraries;
ElementKind get kind => ElementKind.PREFIX;
/**
* Set the libraries that are imported using this prefix to the given libraries.
* @param importedLibraries the libraries that are imported using this prefix
*/
- void set importedLibraries2(List<LibraryElement> importedLibraries) {
- for (LibraryElement library in importedLibraries) {
- (library as LibraryElementImpl).enclosingElement2 = this;
+ void set importedLibraries(List<LibraryElement> importedLibraries2) {
+ for (LibraryElement library in importedLibraries2) {
+ ((library as LibraryElementImpl)).enclosingElement = this;
}
- this._importedLibraries = importedLibraries;
+ this._importedLibraries = importedLibraries2;
}
+ void appendTo(StringBuffer builder) {
+ builder.add("as ");
+ super.appendTo(builder);
+ }
}
/**
* Instances of the class {@code PropertyAccessorElementImpl} implement a{@code PropertyAccessorElement}.
@@ -2053,11 +2570,11 @@
* field.
* @param name the name of this element
*/
- PropertyAccessorElementImpl.con1(FieldElementImpl field) : super.con2(field.name, -1) {
- _jtd_constructor_150_impl(field);
+ PropertyAccessorElementImpl.con1(FieldElementImpl field2) : super.con2(field2.name, -1) {
+ _jtd_constructor_157_impl(field2);
}
- _jtd_constructor_150_impl(FieldElementImpl field) {
- this._field = field;
+ _jtd_constructor_157_impl(FieldElementImpl field2) {
+ this._field = field2;
synthetic = true;
}
/**
@@ -2065,9 +2582,9 @@
* @param name the name of this element
*/
PropertyAccessorElementImpl.con2(Identifier name) : super.con1(name) {
- _jtd_constructor_151_impl(name);
+ _jtd_constructor_158_impl(name);
}
- _jtd_constructor_151_impl(Identifier name) {
+ _jtd_constructor_158_impl(Identifier name) {
}
FieldElement get field => _field;
ElementKind get kind {
@@ -2082,8 +2599,8 @@
* Set the field associated with this accessor to the given field.
* @param field the field associated with this accessor
*/
- void set field2(FieldElement field) {
- this._field = field;
+ void set field(FieldElement field3) {
+ this._field = field3;
}
/**
* Set whether this accessor is a getter to correspond to the given value.
@@ -2099,6 +2616,11 @@
void set setter(bool isSetter) {
setModifier(Modifier.SETTER, isSetter);
}
+ void appendTo(StringBuffer builder) {
+ builder.add(isGetter() ? "get " : "set ");
+ builder.add(field.name);
+ super.appendTo(builder);
+ }
}
/**
* Instances of the class {@code ShowCombinatorImpl} implement a {@link ShowCombinator}.
@@ -2120,9 +2642,21 @@
* imported library to the given names.
* @param shownNames the names that are to be made visible in the importing library
*/
- void set shownNames2(List<String> shownNames) {
- this._shownNames = shownNames;
+ void set shownNames(List<String> shownNames2) {
+ this._shownNames = shownNames2;
}
+ String toString() {
+ StringBuffer builder = new StringBuffer();
+ builder.add("show ");
+ int count = _shownNames.length;
+ for (int i = 0; i < count; i++) {
+ if (i > 0) {
+ builder.add(", ");
+ }
+ builder.add(_shownNames[i]);
+ }
+ return builder.toString();
+ }
}
/**
* Instances of the class {@code TypeAliasElementImpl} implement a {@code TypeAliasElement}.
@@ -2150,20 +2684,20 @@
*/
TypeAliasElementImpl(Identifier name) : super.con1(name) {
}
- ElementImpl getChild(String identifier) {
+ ElementImpl getChild(String identifier23) {
for (VariableElement parameter in _parameters) {
- if ((parameter as VariableElementImpl).identifier == identifier) {
- return parameter as VariableElementImpl;
+ if (((parameter as VariableElementImpl)).identifier == identifier23) {
+ return (parameter as VariableElementImpl);
}
}
for (TypeVariableElement typeVariable in _typeVariables) {
- if ((typeVariable as TypeVariableElementImpl).identifier == identifier) {
- return typeVariable as TypeVariableElementImpl;
+ if (((typeVariable as TypeVariableElementImpl)).identifier == identifier23) {
+ return (typeVariable as TypeVariableElementImpl);
}
}
return null;
}
- CompilationUnitElement get enclosingElement => super.enclosingElement as CompilationUnitElement;
+ CompilationUnitElement get enclosingElement => (super.enclosingElement as CompilationUnitElement);
ElementKind get kind => ElementKind.TYPE_ALIAS;
List<ParameterElement> get parameters => _parameters;
FunctionType get type => _type;
@@ -2172,31 +2706,59 @@
* Set the parameters defined by this type alias to the given parameters.
* @param parameters the parameters defined by this type alias
*/
- void set parameters8(List<ParameterElement> parameters) {
- if (parameters != null) {
- for (ParameterElement parameter in parameters) {
- (parameter as ParameterElementImpl).enclosingElement2 = this;
+ void set parameters(List<ParameterElement> parameters8) {
+ if (parameters8 != null) {
+ for (ParameterElement parameter in parameters8) {
+ ((parameter as ParameterElementImpl)).enclosingElement = this;
}
}
- this._parameters = parameters;
+ this._parameters = parameters8;
}
/**
* Set the type of function defined by this type alias to the given type.
* @param type the type of function defined by this type alias
*/
- void set type12(FunctionType type) {
- this._type = type;
+ void set type(FunctionType type7) {
+ this._type = type7;
}
/**
* Set the type variables defined for this type to the given variables.
* @param typeVariables the type variables defined for this type
*/
- void set typeVariables3(List<TypeVariableElement> typeVariables) {
- for (TypeVariableElement variable in typeVariables) {
- (variable as TypeVariableElementImpl).enclosingElement2 = this;
+ void set typeVariables(List<TypeVariableElement> typeVariables3) {
+ for (TypeVariableElement variable in typeVariables3) {
+ ((variable as TypeVariableElementImpl)).enclosingElement = this;
}
- this._typeVariables = typeVariables;
+ this._typeVariables = typeVariables3;
}
+ void appendTo(StringBuffer builder) {
+ builder.add("typedef ");
+ builder.add(name);
+ int variableCount = _typeVariables.length;
+ if (variableCount > 0) {
+ builder.add("<");
+ for (int i = 0; i < variableCount; i++) {
+ if (i > 0) {
+ builder.add(", ");
+ }
+ ((_typeVariables[i] as TypeVariableElementImpl)).appendTo(builder);
+ }
+ builder.add(">");
+ }
+ builder.add("(");
+ int parameterCount = _parameters.length;
+ for (int i = 0; i < parameterCount; i++) {
+ if (i > 0) {
+ builder.add(", ");
+ }
+ ((_parameters[i] as ParameterElementImpl)).appendTo(builder);
+ }
+ builder.add(")");
+ if (_type != null) {
+ builder.add(" -> ");
+ builder.add(_type.returnType);
+ }
+ }
}
/**
* Instances of the class {@code TypeVariableElementImpl} implement a {@code TypeVariableElement}.
@@ -2228,16 +2790,23 @@
* Set the type representing the bound associated with this variable to the given type.
* @param bound the type representing the bound associated with this variable
*/
- void set bound3(Type2 bound) {
- this._bound = bound;
+ void set bound(Type2 bound2) {
+ this._bound = bound2;
}
/**
* Set the type defined by this type variable to the given type
* @param type the type defined by this type variable
*/
- void set type13(TypeVariableType type) {
- this._type = type;
+ void set type(TypeVariableType type8) {
+ this._type = type8;
}
+ void appendTo(StringBuffer builder) {
+ builder.add(name);
+ if (_bound != null) {
+ builder.add(" extends ");
+ builder.add(_bound);
+ }
+ }
}
/**
* Instances of the class {@code VariableElementImpl} implement a {@code VariableElement}.
@@ -2253,6 +2822,15 @@
*/
FunctionElement _initializer;
/**
+ * The offset to the beginning of the visible range for this element.
+ */
+ int _visibleRangeOffset = 0;
+ /**
+ * The length of the visible range for this element, or {@code -1} if this element does not have a
+ * visible range.
+ */
+ int _visibleRangeLength = -1;
+ /**
* An empty array of variable elements.
*/
static List<VariableElement> EMPTY_ARRAY = new List<VariableElement>.fixedLength(0);
@@ -2261,9 +2839,9 @@
* @param name the name of this element
*/
VariableElementImpl.con1(Identifier name) : super.con1(name) {
- _jtd_constructor_155_impl(name);
+ _jtd_constructor_162_impl(name);
}
- _jtd_constructor_155_impl(Identifier name) {
+ _jtd_constructor_162_impl(Identifier name) {
}
/**
* Initialize a newly created variable element to have the given name.
@@ -2272,13 +2850,19 @@
* declaration of this element
*/
VariableElementImpl.con2(String name, int nameOffset) : super.con2(name, nameOffset) {
- _jtd_constructor_156_impl(name, nameOffset);
+ _jtd_constructor_163_impl(name, nameOffset);
}
- _jtd_constructor_156_impl(String name, int nameOffset) {
+ _jtd_constructor_163_impl(String name, int nameOffset) {
}
FunctionElement get initializer => _initializer;
ElementKind get kind => ElementKind.VARIABLE;
Type2 get type => _type;
+ SourceRange get visibleRange {
+ if (_visibleRangeLength < 0) {
+ return null;
+ }
+ return new SourceRange(_visibleRangeOffset, _visibleRangeLength);
+ }
bool isConst() => hasModifier(Modifier.CONST);
bool isFinal() => hasModifier(Modifier.FINAL);
/**
@@ -2299,20 +2883,35 @@
* Set the function representing this variable's initializer to the given function.
* @param initializer the function representing this variable's initializer
*/
- void set initializer3(FunctionElement initializer) {
- if (initializer != null) {
- (initializer as FunctionElementImpl).enclosingElement2 = this;
+ void set initializer(FunctionElement initializer3) {
+ if (initializer3 != null) {
+ ((initializer3 as FunctionElementImpl)).enclosingElement = this;
}
- this._initializer = initializer;
+ this._initializer = initializer3;
}
/**
* Set the declared type of this variable to the given type.
* @param type the declared type of this variable
*/
- void set type14(Type2 type) {
- this._type = type;
+ void set type(Type2 type9) {
+ this._type = type9;
}
- String toString() => "variable ${type} ${name}";
+ /**
+ * Set the visible range for this element to the range starting at the given offset with the given
+ * length.
+ * @param offset the offset to the beginning of the visible range for this element
+ * @param length the length of the visible range for this element, or {@code -1} if this element
+ * does not have a visible range
+ */
+ void setVisibleRange(int offset, int length) {
+ _visibleRangeOffset = offset;
+ _visibleRangeLength = length;
+ }
+ void appendTo(StringBuffer builder) {
+ builder.add(type);
+ builder.add(" ");
+ builder.add(name);
+ }
}
/**
* The unique instance of the class {@code BottomTypeImpl} implements the type {@code bottom}.
@@ -2332,7 +2931,7 @@
*/
BottomTypeImpl() : super(null, "<bottom>") {
}
- bool operator ==(Object object) => object == this;
+ bool operator ==(Object object) => identical(object, this);
bool isMoreSpecificThan(Type2 type) => true;
bool isSubtypeOf(Type2 type) => true;
bool isSupertypeOf(Type2 type) => false;
@@ -2355,7 +2954,7 @@
* Prevent the creation of instances of this class.
*/
DynamicTypeImpl() : super(new DynamicElementImpl(), Keyword.DYNAMIC.syntax) {
- (element as DynamicElementImpl).type10 = this;
+ ((element as DynamicElementImpl)).type = this;
}
bool operator ==(Object object) => object is DynamicTypeImpl;
bool isMoreSpecificThan(Type2 type) => false;
@@ -2380,8 +2979,8 @@
if (secondTypes.length != firstTypes.length) {
return false;
}
- HasNextIterator<MapEntry<String, Type2>> firstIterator = new HasNextIterator(getMapEntrySet(firstTypes).iterator);
- HasNextIterator<MapEntry<String, Type2>> secondIterator = new HasNextIterator(getMapEntrySet(firstTypes).iterator);
+ JavaIterator<MapEntry<String, Type2>> firstIterator = new JavaIterator(getMapEntrySet(firstTypes));
+ JavaIterator<MapEntry<String, Type2>> secondIterator = new JavaIterator(getMapEntrySet(firstTypes));
while (firstIterator.hasNext) {
MapEntry<String, Type2> firstEntry = firstIterator.next();
MapEntry<String, Type2> secondEntry = secondIterator.next();
@@ -2437,9 +3036,9 @@
* @param element the element representing the declaration of the function type
*/
FunctionTypeImpl.con1(ExecutableElement element) : super(element, element == null ? null : element.name) {
- _jtd_constructor_200_impl(element);
+ _jtd_constructor_209_impl(element);
}
- _jtd_constructor_200_impl(ExecutableElement element) {
+ _jtd_constructor_209_impl(ExecutableElement element) {
}
/**
* Initialize a newly created function type to be declared by the given element and to have the
@@ -2447,15 +3046,15 @@
* @param element the element representing the declaration of the function type
*/
FunctionTypeImpl.con2(TypeAliasElement element) : super(element, element == null ? null : element.name) {
- _jtd_constructor_201_impl(element);
+ _jtd_constructor_210_impl(element);
}
- _jtd_constructor_201_impl(TypeAliasElement element) {
+ _jtd_constructor_210_impl(TypeAliasElement element) {
}
bool operator ==(Object object) {
if (object is! FunctionTypeImpl) {
return false;
}
- FunctionTypeImpl otherType = object as FunctionTypeImpl;
+ FunctionTypeImpl otherType = (object as FunctionTypeImpl);
return element == otherType.element && JavaArrays.equals(_normalParameterTypes, otherType._normalParameterTypes) && JavaArrays.equals(_optionalParameterTypes, otherType._optionalParameterTypes) && equals2(_namedParameterTypes, otherType._namedParameterTypes);
}
Map<String, Type2> get namedParameterTypes => _namedParameterTypes;
@@ -2464,20 +3063,20 @@
Type2 get returnType => _returnType;
List<Type2> get typeArguments => _typeArguments;
int get hashCode {
- Element element29 = element;
- if (element29 == null) {
+ Element element34 = element;
+ if (element34 == null) {
return 0;
}
- return element29.hashCode;
+ return element34.hashCode;
}
bool isSubtypeOf(Type2 type) {
if (type == null || type is! FunctionType) {
return false;
- } else if (this == type || this == type) {
+ } else if (identical(this, type) || this == type) {
return true;
}
FunctionType t = this;
- FunctionType s = type as FunctionType;
+ FunctionType s = (type as FunctionType);
if (t.normalParameterTypes.length != s.normalParameterTypes.length) {
return false;
} else if (t.normalParameterTypes.length > 0) {
@@ -2512,7 +3111,7 @@
if (namedTypesT.length < namedTypesS.length) {
return false;
}
- HasNextIterator<MapEntry<String, Type2>> iteratorS = new HasNextIterator(getMapEntrySet(namedTypesS).iterator);
+ JavaIterator<MapEntry<String, Type2>> iteratorS = new JavaIterator(getMapEntrySet(namedTypesS));
while (iteratorS.hasNext) {
MapEntry<String, Type2> entryS = iteratorS.next();
Type2 typeT = namedTypesT[entryS.getKey()];
@@ -2534,38 +3133,38 @@
* @param namedParameterTypes the mapping of the names of named parameters to the types of the
* named parameters of this type of function
*/
- void set namedParameterTypes2(LinkedHashMap<String, Type2> namedParameterTypes) {
- this._namedParameterTypes = namedParameterTypes;
+ void set namedParameterTypes(LinkedHashMap<String, Type2> namedParameterTypes2) {
+ this._namedParameterTypes = namedParameterTypes2;
}
/**
* Set the types of the normal parameters of this type of function to the types in the given
* array.
* @param normalParameterTypes the types of the normal parameters of this type of function
*/
- void set normalParameterTypes2(List<Type2> normalParameterTypes) {
- this._normalParameterTypes = normalParameterTypes;
+ void set normalParameterTypes(List<Type2> normalParameterTypes2) {
+ this._normalParameterTypes = normalParameterTypes2;
}
/**
* Set the types of the optional parameters of this type of function to the types in the given
* array.
* @param optionalParameterTypes the types of the optional parameters of this type of function
*/
- void set optionalParameterTypes2(List<Type2> optionalParameterTypes) {
- this._optionalParameterTypes = optionalParameterTypes;
+ void set optionalParameterTypes(List<Type2> optionalParameterTypes2) {
+ this._optionalParameterTypes = optionalParameterTypes2;
}
/**
* Set the type of object returned by this type of function to the given type.
* @param returnType the type of object returned by this type of function
*/
- void set returnType7(Type2 returnType) {
- this._returnType = returnType;
+ void set returnType(Type2 returnType3) {
+ this._returnType = returnType3;
}
/**
* Set the actual types of the type arguments to the given types.
* @param typeArguments the actual types of the type arguments
*/
- void set typeArguments4(List<Type2> typeArguments) {
- this._typeArguments = typeArguments;
+ void set typeArguments(List<Type2> typeArguments4) {
+ this._typeArguments = typeArguments4;
}
FunctionTypeImpl substitute4(List<Type2> argumentTypes) => substitute2(argumentTypes, typeArguments);
FunctionTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) {
@@ -2575,16 +3174,15 @@
if (argumentTypes.length == 0) {
return this;
}
- Element element30 = element;
- FunctionTypeImpl newType = (element30 is ExecutableElement) ? new FunctionTypeImpl.con1(element30 as ExecutableElement) : new FunctionTypeImpl.con2(element30 as TypeAliasElement);
- newType.returnType7 = _returnType.substitute2(argumentTypes, parameterTypes);
- newType.normalParameterTypes2 = TypeImpl.substitute(_normalParameterTypes, argumentTypes, parameterTypes);
- newType.optionalParameterTypes2 = TypeImpl.substitute(_optionalParameterTypes, argumentTypes, parameterTypes);
- newType.namedParameterTypes2 = substitute3(_namedParameterTypes, argumentTypes, parameterTypes);
+ Element element35 = element;
+ FunctionTypeImpl newType = (element35 is ExecutableElement) ? new FunctionTypeImpl.con1((element35 as ExecutableElement)) : new FunctionTypeImpl.con2((element35 as TypeAliasElement));
+ newType.returnType = _returnType.substitute2(argumentTypes, parameterTypes);
+ newType.normalParameterTypes = TypeImpl.substitute(_normalParameterTypes, argumentTypes, parameterTypes);
+ newType.optionalParameterTypes = TypeImpl.substitute(_optionalParameterTypes, argumentTypes, parameterTypes);
+ newType.namedParameterTypes = substitute3(_namedParameterTypes, argumentTypes, parameterTypes);
return newType;
}
- String toString() {
- StringBuffer builder = new StringBuffer();
+ void appendTo(StringBuffer builder) {
builder.add("(");
bool needsComma = false;
if (_normalParameterTypes.length > 0) {
@@ -2594,7 +3192,7 @@
} else {
needsComma = true;
}
- builder.add(type);
+ ((type as TypeImpl)).appendTo(builder);
}
}
if (_optionalParameterTypes.length > 0) {
@@ -2609,7 +3207,7 @@
} else {
needsComma = true;
}
- builder.add(type);
+ ((type as TypeImpl)).appendTo(builder);
}
builder.add("]");
needsComma = true;
@@ -2628,14 +3226,13 @@
}
builder.add(entry.getKey());
builder.add(": ");
- builder.add(entry.getValue());
+ ((entry.getValue() as TypeImpl)).appendTo(builder);
}
builder.add("}");
needsComma = true;
}
builder.add(") -> ");
- builder.add(_returnType);
- return builder.toString();
+ ((_returnType as TypeImpl)).appendTo(builder);
}
}
/**
@@ -2706,9 +3303,9 @@
* @see #getLeastUpperBound(Type)
*/
static Set<InterfaceType> computeSuperinterfaceSet2(InterfaceType type, Set<InterfaceType> set) {
- Element element31 = type.element;
- if (element31 != null && element31 is ClassElement) {
- ClassElement classElement = element31 as ClassElement;
+ Element element36 = type.element;
+ if (element36 != null && element36 is ClassElement) {
+ ClassElement classElement = (element36 as ClassElement);
List<InterfaceType> superinterfaces = classElement.interfaces;
for (InterfaceType superinterface in superinterfaces) {
javaSetAdd(set, superinterface);
@@ -2731,9 +3328,9 @@
* @param element the element representing the declaration of the type
*/
InterfaceTypeImpl.con1(ClassElement element) : super(element, element.name) {
- _jtd_constructor_202_impl(element);
+ _jtd_constructor_211_impl(element);
}
- _jtd_constructor_202_impl(ClassElement element) {
+ _jtd_constructor_211_impl(ClassElement element) {
}
/**
* Initialize a newly created type to have the given name. This constructor should only be used in
@@ -2741,28 +3338,28 @@
* @param name the name of the type
*/
InterfaceTypeImpl.con2(String name) : super(null, name) {
- _jtd_constructor_203_impl(name);
+ _jtd_constructor_212_impl(name);
}
- _jtd_constructor_203_impl(String name) {
+ _jtd_constructor_212_impl(String name) {
}
bool operator ==(Object object) {
if (object is! InterfaceTypeImpl) {
return false;
}
- InterfaceTypeImpl otherType = object as InterfaceTypeImpl;
+ InterfaceTypeImpl otherType = (object as InterfaceTypeImpl);
return element == otherType.element && JavaArrays.equals(_typeArguments, otherType._typeArguments);
}
- ClassElement get element => super.element as ClassElement;
+ ClassElement get element => (super.element as ClassElement);
Type2 getLeastUpperBound(Type2 type) {
Type2 dynamicType = DynamicTypeImpl.instance;
- if (this == dynamicType || type == dynamicType) {
+ if (identical(this, dynamicType) || identical(type, dynamicType)) {
return dynamicType;
}
if (type == null || type is! InterfaceType) {
return null;
}
InterfaceType i = this;
- InterfaceType j = type as InterfaceType;
+ InterfaceType j = (type as InterfaceType);
Set<InterfaceType> si = computeSuperinterfaceSet(i);
Set<InterfaceType> sj = computeSuperinterfaceSet(j);
javaSetAdd(si, i);
@@ -2799,42 +3396,42 @@
}
List<Type2> get typeArguments => _typeArguments;
int get hashCode {
- ClassElement element32 = element;
- if (element32 == null) {
+ ClassElement element37 = element;
+ if (element37 == null) {
return 0;
}
- return element32.hashCode;
+ return element37.hashCode;
}
bool isDirectSupertypeOf(InterfaceType type) {
ClassElement i = element;
ClassElement j = type.element;
- Type2 supertype5 = j.supertype;
+ InterfaceType supertype5 = j.supertype;
if (supertype5 == null) {
return false;
}
- ClassElement supertypeElement = supertype5.element as ClassElement;
+ ClassElement supertypeElement = supertype5.element;
if (supertypeElement == i) {
return true;
}
- for (Type2 interfaceType in j.interfaces) {
- if (interfaceType == i) {
+ for (InterfaceType interfaceType in j.interfaces) {
+ if (interfaceType.element == i) {
return true;
}
}
- for (Type2 mixinType in j.mixins) {
- if (mixinType == i) {
+ for (InterfaceType mixinType in j.mixins) {
+ if (mixinType.element == i) {
return true;
}
}
return false;
}
bool isMoreSpecificThan(Type2 type) {
- if (type == DynamicTypeImpl.instance) {
+ if (identical(type, DynamicTypeImpl.instance)) {
return true;
} else if (type is! InterfaceType) {
return false;
}
- InterfaceType s = type as InterfaceType;
+ InterfaceType s = (type as InterfaceType);
if (this == s) {
return true;
}
@@ -2862,7 +3459,7 @@
return element.supertype.isMoreSpecificThan(type);
}
bool isSubtypeOf(Type2 type) {
- if (type == DynamicTypeImpl.instance) {
+ if (identical(type, DynamicTypeImpl.instance)) {
return true;
} else if (type is TypeVariableType) {
return true;
@@ -2872,7 +3469,7 @@
return true;
}
InterfaceType typeT = this;
- InterfaceType typeS = type as InterfaceType;
+ InterfaceType typeS = (type as InterfaceType);
ClassElement elementT = element;
if (elementT == null) {
return false;
@@ -2915,8 +3512,8 @@
* Set the actual types of the type arguments to those in the given array.
* @param typeArguments the actual types of the type arguments
*/
- void set typeArguments5(List<Type2> typeArguments) {
- this._typeArguments = typeArguments;
+ void set typeArguments(List<Type2> typeArguments5) {
+ this._typeArguments = typeArguments5;
}
InterfaceTypeImpl substitute5(List<Type2> argumentTypes) => substitute2(argumentTypes, typeArguments);
InterfaceTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) {
@@ -2927,9 +3524,23 @@
return this;
}
InterfaceTypeImpl newType = new InterfaceTypeImpl.con1(element);
- newType.typeArguments5 = TypeImpl.substitute(_typeArguments, argumentTypes, parameterTypes);
+ newType.typeArguments = TypeImpl.substitute(_typeArguments, argumentTypes, parameterTypes);
return newType;
}
+ void appendTo(StringBuffer builder) {
+ builder.add(name);
+ int argumentCount = _typeArguments.length;
+ if (argumentCount > 0) {
+ builder.add("<");
+ for (int i = 0; i < argumentCount; i++) {
+ if (i > 0) {
+ builder.add(", ");
+ }
+ ((_typeArguments[i] as TypeImpl)).appendTo(builder);
+ }
+ builder.add(">");
+ }
+ }
}
/**
* The abstract class {@code TypeImpl} implements the behavior common to objects representing the
@@ -2980,7 +3591,22 @@
bool isAssignableTo(Type2 type) => this.isSubtypeOf(type) || type.isSubtypeOf(this);
bool isMoreSpecificThan(Type2 type) => false;
bool isSupertypeOf(Type2 type) => type.isSubtypeOf(this);
- String toString() => _name == null ? "<unnamed type>" : "type ${_name}";
+ String toString() {
+ StringBuffer builder = new StringBuffer();
+ appendTo(builder);
+ return builder.toString();
+ }
+ /**
+ * Append a textual representation of this type to the given builder.
+ * @param builder the builder to which the text is to be appended
+ */
+ void appendTo(StringBuffer builder) {
+ if (_name == null) {
+ builder.add("<unnamed type>");
+ } else {
+ builder.add(_name);
+ }
+ }
}
/**
* Instances of the class {@code TypeVariableTypeImpl} defines the behavior of objects representing
@@ -3008,8 +3634,8 @@
*/
TypeVariableTypeImpl(TypeVariableElement element) : super(element, element.name) {
}
- bool operator ==(Object object) => object is TypeVariableTypeImpl && element == (object as TypeVariableTypeImpl).element;
- TypeVariableElement get element => super.element as TypeVariableElement;
+ bool operator ==(Object object) => object is TypeVariableTypeImpl && element == ((object as TypeVariableTypeImpl)).element;
+ TypeVariableElement get element => (super.element as TypeVariableElement);
int get hashCode => element.hashCode;
bool isMoreSpecificThan(Type2 type) {
Type2 upperBound = element.bound;
@@ -3044,8 +3670,8 @@
*/
VoidTypeImpl() : super(null, Keyword.VOID.syntax) {
}
- bool operator ==(Object object) => object == this;
- bool isSubtypeOf(Type2 type) => type == this || type == DynamicTypeImpl.instance;
+ bool operator ==(Object object) => identical(object, this);
+ bool isSubtypeOf(Type2 type) => identical(type, this) || identical(type, DynamicTypeImpl.instance);
VoidTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) => this;
}
/**

Powered by Google App Engine
This is Rietveld 408576698