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

Unified Diff: mojo/public/dart/third_party/analyzer/lib/src/generated/element_handle.dart

Issue 1346773002: Stop running pub get at gclient sync time and fix build bugs (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 3 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: mojo/public/dart/third_party/analyzer/lib/src/generated/element_handle.dart
diff --git a/mojo/public/dart/third_party/analyzer/lib/src/generated/element_handle.dart b/mojo/public/dart/third_party/analyzer/lib/src/generated/element_handle.dart
new file mode 100644
index 0000000000000000000000000000000000000000..94bb7a41c3e9626aca7ad24a1a5fbb9a309fc3e7
--- /dev/null
+++ b/mojo/public/dart/third_party/analyzer/lib/src/generated/element_handle.dart
@@ -0,0 +1,1122 @@
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library engine.element_handle;
+
+import 'ast.dart';
+import 'element.dart';
+import 'engine.dart';
+import 'java_core.dart';
+import 'java_engine.dart';
+import 'resolver.dart';
+import 'source.dart';
+import 'utilities_dart.dart';
+
+/**
+ * Instances of the class `ClassElementHandle` implement a handle to a `ClassElement`.
+ */
+class ClassElementHandle extends ElementHandle implements ClassElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ ClassElementHandle(ClassElement element) : super(element);
+
+ @override
+ List<PropertyAccessorElement> get accessors => actualElement.accessors;
+
+ @override
+ ClassElement get actualElement => super.actualElement as ClassElement;
+
+ @override
+ List<InterfaceType> get allSupertypes => actualElement.allSupertypes;
+
+ @override
+ List<ConstructorElement> get constructors => actualElement.constructors;
+
+ @override
+ List<FieldElement> get fields => actualElement.fields;
+
+ @override
+ bool get hasNonFinalField => actualElement.hasNonFinalField;
+
+ @override
+ bool get hasReferenceToSuper => actualElement.hasReferenceToSuper;
+
+ @override
+ bool get hasStaticMember => actualElement.hasStaticMember;
+
+ @override
+ List<InterfaceType> get interfaces => actualElement.interfaces;
+
+ @override
+ bool get isAbstract => actualElement.isAbstract;
+
+ @override
+ bool get isEnum => actualElement.isEnum;
+
+ @override
+ bool get isMixinApplication => actualElement.isMixinApplication;
+
+ @override
+ bool get isOrInheritsProxy => actualElement.isOrInheritsProxy;
+
+ @override
+ bool get isProxy => actualElement.isProxy;
+
+ @override
+ @deprecated
+ bool get isTypedef => actualElement.isMixinApplication;
+
+ @override
+ bool get isValidMixin => actualElement.isValidMixin;
+
+ @override
+ ElementKind get kind => ElementKind.CLASS;
+
+ @override
+ List<MethodElement> get methods => actualElement.methods;
+
+ @override
+ List<InterfaceType> get mixins => actualElement.mixins;
+
+ @override
+ InterfaceType get supertype => actualElement.supertype;
+
+ @override
+ InterfaceType get type => actualElement.type;
+
+ @override
+ List<TypeParameterElement> get typeParameters => actualElement.typeParameters;
+
+ @override
+ ConstructorElement get unnamedConstructor => actualElement.unnamedConstructor;
+
+ @override
+ FieldElement getField(String fieldName) => actualElement.getField(fieldName);
+
+ @override
+ PropertyAccessorElement getGetter(String getterName) =>
+ actualElement.getGetter(getterName);
+
+ @override
+ MethodElement getMethod(String methodName) =>
+ actualElement.getMethod(methodName);
+
+ @override
+ ConstructorElement getNamedConstructor(String name) =>
+ actualElement.getNamedConstructor(name);
+
+ @override
+ PropertyAccessorElement getSetter(String setterName) =>
+ actualElement.getSetter(setterName);
+
+ @override
+ bool isSuperConstructorAccessible(ConstructorElement constructor) =>
+ actualElement.isSuperConstructorAccessible(constructor);
+
+ @override
+ MethodElement lookUpConcreteMethod(
+ String methodName, LibraryElement library) =>
+ actualElement.lookUpConcreteMethod(methodName, library);
+
+ @override
+ PropertyAccessorElement lookUpGetter(
+ String getterName, LibraryElement library) =>
+ actualElement.lookUpGetter(getterName, library);
+
+ @override
+ PropertyAccessorElement lookUpInheritedConcreteGetter(
+ String methodName, LibraryElement library) =>
+ actualElement.lookUpInheritedConcreteGetter(methodName, library);
+
+ @override
+ MethodElement lookUpInheritedConcreteMethod(
+ String methodName, LibraryElement library) =>
+ actualElement.lookUpInheritedConcreteMethod(methodName, library);
+
+ @override
+ PropertyAccessorElement lookUpInheritedConcreteSetter(
+ String methodName, LibraryElement library) =>
+ actualElement.lookUpInheritedConcreteSetter(methodName, library);
+
+ @override
+ MethodElement lookUpInheritedMethod(
+ String methodName, LibraryElement library) =>
+ actualElement.lookUpInheritedMethod(methodName, library);
+
+ @override
+ MethodElement lookUpMethod(String methodName, LibraryElement library) =>
+ actualElement.lookUpMethod(methodName, library);
+
+ @override
+ PropertyAccessorElement lookUpSetter(
+ String setterName, LibraryElement library) =>
+ actualElement.lookUpSetter(setterName, library);
+}
+
+/**
+ * Instances of the class `CompilationUnitElementHandle` implements a handle to a
+ * [CompilationUnitElement].
+ */
+class CompilationUnitElementHandle extends ElementHandle
+ implements CompilationUnitElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ CompilationUnitElementHandle(CompilationUnitElement element) : super(element);
+
+ @override
+ List<PropertyAccessorElement> get accessors => actualElement.accessors;
+
+ @override
+ CompilationUnitElement get actualElement =>
+ super.actualElement as CompilationUnitElement;
+
+ @override
+ LibraryElement get enclosingElement =>
+ super.enclosingElement as LibraryElement;
+
+ @override
+ List<ClassElement> get enums => actualElement.enums;
+
+ @override
+ List<FunctionElement> get functions => actualElement.functions;
+
+ @override
+ List<FunctionTypeAliasElement> get functionTypeAliases =>
+ actualElement.functionTypeAliases;
+
+ @override
+ bool get hasLoadLibraryFunction => actualElement.hasLoadLibraryFunction;
+
+ @override
+ ElementKind get kind => ElementKind.COMPILATION_UNIT;
+
+ @override
+ Source get source => actualElement.source;
+
+ @override
+ List<TopLevelVariableElement> get topLevelVariables =>
+ actualElement.topLevelVariables;
+
+ @override
+ List<ClassElement> get types => actualElement.types;
+
+ @override
+ String get uri => actualElement.uri;
+
+ @override
+ int get uriEnd => actualElement.uriEnd;
+
+ @override
+ int get uriOffset => actualElement.uriOffset;
+
+ @override
+ CompilationUnit computeNode() => actualElement.computeNode();
+
+ @override
+ Element getElementAt(int offset) {
+ return actualElement.getElementAt(offset);
+ }
+
+ @override
+ ClassElement getEnum(String enumName) => actualElement.getEnum(enumName);
+
+ @override
+ ClassElement getType(String className) => actualElement.getType(className);
+}
+
+/**
+ * Instances of the class `ConstructorElementHandle` implement a handle to a
+ * `ConstructorElement`.
+ */
+class ConstructorElementHandle extends ExecutableElementHandle
+ implements ConstructorElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ ConstructorElementHandle(ConstructorElement element) : super(element);
+
+ @override
+ ConstructorElement get actualElement =>
+ super.actualElement as ConstructorElement;
+
+ @override
+ ClassElement get enclosingElement => actualElement.enclosingElement;
+
+ @override
+ bool get isConst => actualElement.isConst;
+
+ @override
+ bool get isDefaultConstructor => actualElement.isDefaultConstructor;
+
+ @override
+ bool get isFactory => actualElement.isFactory;
+
+ @override
+ ElementKind get kind => ElementKind.CONSTRUCTOR;
+
+ @override
+ int get nameEnd => actualElement.nameEnd;
+
+ @override
+ int get periodOffset => actualElement.periodOffset;
+
+ @override
+ ConstructorElement get redirectedConstructor =>
+ actualElement.redirectedConstructor;
+
+ @override
+ ConstructorDeclaration computeNode() => actualElement.computeNode();
+}
+
+/**
+ * The abstract class `ElementHandle` implements the behavior common to objects that implement
+ * a handle to an [Element].
+ */
+abstract class ElementHandle implements Element {
+ /**
+ * The unique integer identifier of this element.
+ */
+ final int id = 0;
+
+ /**
+ * The context in which the element is defined.
+ */
+ AnalysisContext _context;
+
+ /**
+ * The location of this element, used to reconstitute the element if it has been garbage
+ * collected.
+ */
+ ElementLocation _location;
+
+ /**
+ * A reference to the element being referenced by this handle, or `null` if the element has
+ * been garbage collected.
+ */
+ WeakReference<Element> _elementReference;
+
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ ElementHandle(Element element) {
+ _context = element.context;
+ _location = element.location;
+ _elementReference = new WeakReference<Element>(element);
+ }
+
+ /**
+ * Return the element being represented by this handle, reconstituting the element if the
+ * reference has been set to `null`.
+ *
+ * @return the element being represented by this handle
+ */
+ Element get actualElement {
+ Element element = _elementReference.get();
+ if (element == null) {
+ element = _context.getElement(_location);
+ _elementReference = new WeakReference<Element>(element);
+ }
+ return element;
+ }
+
+ @override
+ AnalysisContext get context => _context;
+
+ @override
+ String get displayName => actualElement.displayName;
+
+ @override
+ Element get enclosingElement => actualElement.enclosingElement;
+
+ @override
+ int get hashCode => _location.hashCode;
+
+ @override
+ bool get isDeprecated => actualElement.isDeprecated;
+
+ @override
+ bool get isOverride => actualElement.isOverride;
+
+ @override
+ bool get isPrivate => actualElement.isPrivate;
+
+ @override
+ bool get isPublic => actualElement.isPublic;
+
+ @override
+ bool get isSynthetic => actualElement.isSynthetic;
+
+ @override
+ LibraryElement get library =>
+ getAncestor((element) => element is LibraryElement);
+
+ @override
+ ElementLocation get location => _location;
+
+ @override
+ List<ElementAnnotation> get metadata => actualElement.metadata;
+
+ @override
+ String get name => actualElement.name;
+
+ @override
+ int get nameOffset => actualElement.nameOffset;
+
+ @deprecated
+ @override
+ AstNode get node => computeNode();
+
+ @override
+ Source get source => actualElement.source;
+
+ @override
+ CompilationUnit get unit => actualElement.unit;
+
+ @override
+ bool operator ==(Object object) =>
+ object is Element && object.location == _location;
+
+ @override
+ accept(ElementVisitor visitor) => actualElement.accept(visitor);
+
+ @override
+ String computeDocumentationComment() =>
+ actualElement.computeDocumentationComment();
+
+ @override
+ AstNode computeNode() => actualElement.computeNode();
+
+ @override
+ Element getAncestor(Predicate<Element> predicate) =>
+ actualElement.getAncestor(predicate);
+
+ @override
+ String getExtendedDisplayName(String shortName) =>
+ actualElement.getExtendedDisplayName(shortName);
+
+ @override
+ bool isAccessibleIn(LibraryElement library) =>
+ actualElement.isAccessibleIn(library);
+
+ @override
+ void visitChildren(ElementVisitor visitor) {
+ actualElement.visitChildren(visitor);
+ }
+
+ /**
+ * Return a handle on the given element. If the element is already a handle, then it will be
+ * returned directly, otherwise a handle of the appropriate class will be constructed.
+ *
+ * @param element the element for which a handle is to be constructed
+ * @return a handle on the given element
+ */
+ static Element forElement(Element element) {
+ if (element is ElementHandle) {
+ return element;
+ }
+ while (true) {
+ if (element.kind == ElementKind.CLASS) {
+ return new ClassElementHandle(element as ClassElement);
+ } else if (element.kind == ElementKind.COMPILATION_UNIT) {
+ return new CompilationUnitElementHandle(
+ element as CompilationUnitElement);
+ } else if (element.kind == ElementKind.CONSTRUCTOR) {
+ return new ConstructorElementHandle(element as ConstructorElement);
+ } else if (element.kind == ElementKind.EXPORT) {
+ return new ExportElementHandle(element as ExportElement);
+ } else if (element.kind == ElementKind.FIELD) {
+ return new FieldElementHandle(element as FieldElement);
+ } else if (element.kind == ElementKind.FUNCTION) {
+ return new FunctionElementHandle(element as FunctionElement);
+ } else if (element.kind == ElementKind.GETTER) {
+ return new PropertyAccessorElementHandle(
+ element as PropertyAccessorElement);
+ } else if (element.kind == ElementKind.IMPORT) {
+ return new ImportElementHandle(element as ImportElement);
+ } else if (element.kind == ElementKind.LABEL) {
+ return new LabelElementHandle(element as LabelElement);
+ } else if (element.kind == ElementKind.LIBRARY) {
+ return new LibraryElementHandle(element as LibraryElement);
+ } else if (element.kind == ElementKind.LOCAL_VARIABLE) {
+ return new LocalVariableElementHandle(element as LocalVariableElement);
+ } else if (element.kind == ElementKind.METHOD) {
+ return new MethodElementHandle(element as MethodElement);
+ } else if (element.kind == ElementKind.PARAMETER) {
+ return new ParameterElementHandle(element as ParameterElement);
+ } else if (element.kind == ElementKind.PREFIX) {
+ return new PrefixElementHandle(element as PrefixElement);
+ } else if (element.kind == ElementKind.SETTER) {
+ return new PropertyAccessorElementHandle(
+ element as PropertyAccessorElement);
+ } else if (element.kind == ElementKind.TOP_LEVEL_VARIABLE) {
+ return new TopLevelVariableElementHandle(
+ element as TopLevelVariableElement);
+ } else if (element.kind == ElementKind.FUNCTION_TYPE_ALIAS) {
+ return new FunctionTypeAliasElementHandle(
+ element as FunctionTypeAliasElement);
+ } else if (element.kind == ElementKind.TYPE_PARAMETER) {
+ return new TypeParameterElementHandle(element as TypeParameterElement);
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ break;
+ }
+ }
+
+ /**
+ * Return an array of the same size as the given array where each element of the returned array is
+ * a handle for the corresponding element of the given array.
+ *
+ * @param elements the elements for which handles are to be created
+ * @return an array of handles to the given elements
+ */
+ static List<Element> forElements(List<Element> elements) {
+ int length = elements.length;
+ List<Element> handles = new List<Element>.from(elements);
+ for (int i = 0; i < length; i++) {
+ handles[i] = forElement(elements[i]);
+ }
+ return handles;
+ }
+}
+
+/**
+ * The abstract class `ExecutableElementHandle` implements the behavior common to objects that
+ * implement a handle to an [ExecutableElement].
+ */
+abstract class ExecutableElementHandle extends ElementHandle
+ implements ExecutableElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ ExecutableElementHandle(ExecutableElement element) : super(element);
+
+ @override
+ ExecutableElement get actualElement =>
+ super.actualElement as ExecutableElement;
+
+ @override
+ List<FunctionElement> get functions => actualElement.functions;
+
+ @override
+ bool get hasImplicitReturnType => actualElement.hasImplicitReturnType;
+
+ @override
+ bool get isAbstract => actualElement.isAbstract;
+
+ @override
+ bool get isAsynchronous => actualElement.isAsynchronous;
+
+ @override
+ bool get isExternal => actualElement.isExternal;
+
+ @override
+ bool get isGenerator => actualElement.isGenerator;
+
+ @override
+ bool get isOperator => actualElement.isOperator;
+
+ @override
+ bool get isStatic => actualElement.isStatic;
+
+ @override
+ bool get isSynchronous => actualElement.isSynchronous;
+
+ @override
+ List<LabelElement> get labels => actualElement.labels;
+
+ @override
+ List<LocalVariableElement> get localVariables => actualElement.localVariables;
+
+ @override
+ List<ParameterElement> get parameters => actualElement.parameters;
+
+ @override
+ DartType get returnType => actualElement.returnType;
+
+ @override
+ FunctionType get type => actualElement.type;
+
+ @override
+ List<TypeParameterElement> get typeParameters => actualElement.typeParameters;
+}
+
+/**
+ * Instances of the class `ExportElementHandle` implement a handle to an `ExportElement`
+ * .
+ */
+class ExportElementHandle extends ElementHandle implements ExportElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ ExportElementHandle(ExportElement element) : super(element);
+
+ @override
+ ExportElement get actualElement => super.actualElement as ExportElement;
+
+ @override
+ List<NamespaceCombinator> get combinators => actualElement.combinators;
+
+ @override
+ LibraryElement get exportedLibrary => actualElement.exportedLibrary;
+
+ @override
+ ElementKind get kind => ElementKind.EXPORT;
+
+ @override
+ String get uri => actualElement.uri;
+
+ @override
+ int get uriEnd => actualElement.uriEnd;
+
+ @override
+ int get uriOffset => actualElement.uriOffset;
+}
+
+/**
+ * Instances of the class `FieldElementHandle` implement a handle to a `FieldElement`.
+ */
+class FieldElementHandle extends PropertyInducingElementHandle
+ implements FieldElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ FieldElementHandle(FieldElement element) : super(element);
+
+ @override
+ FieldElement get actualElement => super.actualElement as FieldElement;
+
+ @override
+ ClassElement get enclosingElement => actualElement.enclosingElement;
+
+ @override
+ bool get isEnumConstant => actualElement.isEnumConstant;
+
+ @override
+ ElementKind get kind => ElementKind.FIELD;
+
+ @override
+ VariableDeclaration computeNode() => actualElement.computeNode();
+}
+
+/**
+ * Instances of the class `FunctionElementHandle` implement a handle to a
+ * `FunctionElement`.
+ */
+class FunctionElementHandle extends ExecutableElementHandle
+ implements FunctionElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ FunctionElementHandle(FunctionElement element) : super(element);
+
+ @override
+ FunctionElement get actualElement => super.actualElement as FunctionElement;
+
+ @override
+ bool get isEntryPoint => actualElement.isEntryPoint;
+
+ @override
+ ElementKind get kind => ElementKind.FUNCTION;
+
+ @override
+ SourceRange get visibleRange => actualElement.visibleRange;
+
+ @override
+ FunctionDeclaration computeNode() => actualElement.computeNode();
+}
+
+/**
+ * Instances of the class `FunctionTypeAliasElementHandle` implement a handle to a
+ * `FunctionTypeAliasElement`.
+ */
+class FunctionTypeAliasElementHandle extends ElementHandle
+ implements FunctionTypeAliasElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ FunctionTypeAliasElementHandle(FunctionTypeAliasElement element)
+ : super(element);
+
+ @override
+ FunctionTypeAliasElement get actualElement =>
+ super.actualElement as FunctionTypeAliasElement;
+
+ @override
+ CompilationUnitElement get enclosingElement =>
+ super.enclosingElement as CompilationUnitElement;
+
+ @override
+ ElementKind get kind => ElementKind.FUNCTION_TYPE_ALIAS;
+
+ @override
+ List<ParameterElement> get parameters => actualElement.parameters;
+
+ @override
+ DartType get returnType => actualElement.returnType;
+
+ @override
+ FunctionType get type => actualElement.type;
+
+ @override
+ List<TypeParameterElement> get typeParameters => actualElement.typeParameters;
+
+ @override
+ FunctionTypeAlias computeNode() => actualElement.computeNode();
+}
+
+/**
+ * Instances of the class `ImportElementHandle` implement a handle to an `ImportElement`
+ * .
+ */
+class ImportElementHandle extends ElementHandle implements ImportElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ ImportElementHandle(ImportElement element) : super(element);
+
+ @override
+ ImportElement get actualElement => super.actualElement as ImportElement;
+
+ @override
+ List<NamespaceCombinator> get combinators => actualElement.combinators;
+
+ @override
+ LibraryElement get importedLibrary => actualElement.importedLibrary;
+
+ @override
+ bool get isDeferred => actualElement.isDeferred;
+
+ @override
+ ElementKind get kind => ElementKind.IMPORT;
+
+ @override
+ PrefixElement get prefix => actualElement.prefix;
+
+ @override
+ int get prefixOffset => actualElement.prefixOffset;
+
+ @override
+ String get uri => actualElement.uri;
+
+ @override
+ int get uriEnd => actualElement.uriEnd;
+
+ @override
+ int get uriOffset => actualElement.uriOffset;
+}
+
+/**
+ * Instances of the class `LabelElementHandle` implement a handle to a `LabelElement`.
+ */
+class LabelElementHandle extends ElementHandle implements LabelElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ LabelElementHandle(LabelElement element) : super(element);
+
+ @override
+ ExecutableElement get enclosingElement =>
+ super.enclosingElement as ExecutableElement;
+
+ @override
+ ElementKind get kind => ElementKind.LABEL;
+}
+
+/**
+ * Instances of the class `LibraryElementHandle` implement a handle to a
+ * `LibraryElement`.
+ */
+class LibraryElementHandle extends ElementHandle implements LibraryElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ LibraryElementHandle(LibraryElement element) : super(element);
+
+ @override
+ LibraryElement get actualElement => super.actualElement as LibraryElement;
+
+ @override
+ CompilationUnitElement get definingCompilationUnit =>
+ actualElement.definingCompilationUnit;
+
+ @override
+ FunctionElement get entryPoint => actualElement.entryPoint;
+
+ @override
+ List<LibraryElement> get exportedLibraries => actualElement.exportedLibraries;
+
+ @override
+ Namespace get exportNamespace => actualElement.exportNamespace;
+
+ @override
+ List<ExportElement> get exports => actualElement.exports;
+
+ @override
+ bool get hasExtUri => actualElement.hasExtUri;
+
+ @override
+ bool get hasLoadLibraryFunction => actualElement.hasLoadLibraryFunction;
+
+ @override
+ List<LibraryElement> get importedLibraries => actualElement.importedLibraries;
+
+ @override
+ List<ImportElement> get imports => actualElement.imports;
+
+ @override
+ bool get isBrowserApplication => actualElement.isBrowserApplication;
+
+ @override
+ bool get isDartCore => actualElement.isDartCore;
+
+ @override
+ bool get isInSdk => actualElement.isInSdk;
+
+ @override
+ ElementKind get kind => ElementKind.LIBRARY;
+
+ @override
+ FunctionElement get loadLibraryFunction => actualElement.loadLibraryFunction;
+
+ @override
+ List<CompilationUnitElement> get parts => actualElement.parts;
+
+ @override
+ List<PrefixElement> get prefixes => actualElement.prefixes;
+
+ @override
+ Namespace get publicNamespace => actualElement.publicNamespace;
+
+ @override
+ List<CompilationUnitElement> get units => actualElement.units;
+
+ @override
+ List<LibraryElement> get visibleLibraries => actualElement.visibleLibraries;
+
+ @override
+ List<ImportElement> getImportsWithPrefix(PrefixElement prefixElement) =>
+ actualElement.getImportsWithPrefix(prefixElement);
+
+ @override
+ ClassElement getType(String className) => actualElement.getType(className);
+
+ @override
+ bool isUpToDate(int timeStamp) => actualElement.isUpToDate(timeStamp);
+}
+
+/**
+ * Instances of the class `LocalVariableElementHandle` implement a handle to a
+ * `LocalVariableElement`.
+ */
+class LocalVariableElementHandle extends VariableElementHandle
+ implements LocalVariableElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ LocalVariableElementHandle(LocalVariableElement element) : super(element);
+
+ @override
+ LocalVariableElement get actualElement =>
+ super.actualElement as LocalVariableElement;
+
+ @override
+ ElementKind get kind => ElementKind.LOCAL_VARIABLE;
+
+ @override
+ SourceRange get visibleRange => actualElement.visibleRange;
+
+ @override
+ VariableDeclaration computeNode() => actualElement.computeNode();
+}
+
+/**
+ * Instances of the class `MethodElementHandle` implement a handle to a `MethodElement`.
+ */
+class MethodElementHandle extends ExecutableElementHandle
+ implements MethodElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ MethodElementHandle(MethodElement element) : super(element);
+
+ @override
+ MethodElement get actualElement => super.actualElement as MethodElement;
+
+ @override
+ ClassElement get enclosingElement => super.enclosingElement as ClassElement;
+
+ @override
+ bool get isStatic => actualElement.isStatic;
+
+ @override
+ ElementKind get kind => ElementKind.METHOD;
+
+ @override
+ MethodDeclaration computeNode() => actualElement.computeNode();
+}
+
+/**
+ * Instances of the class `ParameterElementHandle` implement a handle to a
+ * `ParameterElement`.
+ */
+class ParameterElementHandle extends VariableElementHandle
+ with ParameterElementMixin
+ implements ParameterElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ ParameterElementHandle(ParameterElement element) : super(element);
+
+ @override
+ ParameterElement get actualElement => super.actualElement as ParameterElement;
+
+ @override
+ String get defaultValueCode => actualElement.defaultValueCode;
+
+ @override
+ bool get isInitializingFormal => actualElement.isInitializingFormal;
+
+ @override
+ ElementKind get kind => ElementKind.PARAMETER;
+
+ @override
+ ParameterKind get parameterKind => actualElement.parameterKind;
+
+ @override
+ List<ParameterElement> get parameters => actualElement.parameters;
+
+ @override
+ List<TypeParameterElement> get typeParameters => actualElement.typeParameters;
+
+ @override
+ SourceRange get visibleRange => actualElement.visibleRange;
+}
+
+/**
+ * Instances of the class `PrefixElementHandle` implement a handle to a `PrefixElement`.
+ */
+class PrefixElementHandle extends ElementHandle implements PrefixElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ PrefixElementHandle(PrefixElement element) : super(element);
+
+ @override
+ PrefixElement get actualElement => super.actualElement as PrefixElement;
+
+ @override
+ LibraryElement get enclosingElement =>
+ super.enclosingElement as LibraryElement;
+
+ @override
+ List<LibraryElement> get importedLibraries => actualElement.importedLibraries;
+
+ @override
+ ElementKind get kind => ElementKind.PREFIX;
+}
+
+/**
+ * Instances of the class `PropertyAccessorElementHandle` implement a handle to a
+ * `PropertyAccessorElement`.
+ */
+class PropertyAccessorElementHandle extends ExecutableElementHandle
+ implements PropertyAccessorElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ PropertyAccessorElementHandle(PropertyAccessorElement element)
+ : super(element);
+
+ @override
+ PropertyAccessorElement get actualElement =>
+ super.actualElement as PropertyAccessorElement;
+
+ @override
+ PropertyAccessorElement get correspondingGetter =>
+ actualElement.correspondingGetter;
+
+ @override
+ PropertyAccessorElement get correspondingSetter =>
+ actualElement.correspondingSetter;
+
+ @override
+ bool get isGetter => actualElement.isGetter;
+
+ @override
+ bool get isSetter => actualElement.isSetter;
+
+ @override
+ ElementKind get kind {
+ if (isGetter) {
+ return ElementKind.GETTER;
+ } else {
+ return ElementKind.SETTER;
+ }
+ }
+
+ @override
+ PropertyInducingElement get variable => actualElement.variable;
+}
+
+/**
+ * The abstract class `PropertyInducingElementHandle` implements the behavior common to
+ * objects that implement a handle to an `PropertyInducingElement`.
+ */
+abstract class PropertyInducingElementHandle extends VariableElementHandle
+ implements PropertyInducingElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ PropertyInducingElementHandle(PropertyInducingElement element)
+ : super(element);
+
+ @override
+ PropertyInducingElement get actualElement =>
+ super.actualElement as PropertyInducingElement;
+
+ @override
+ PropertyAccessorElement get getter => actualElement.getter;
+
+ @override
+ DartType get propagatedType => actualElement.propagatedType;
+
+ @override
+ PropertyAccessorElement get setter => actualElement.setter;
+}
+
+/**
+ * Instances of the class `TopLevelVariableElementHandle` implement a handle to a
+ * `TopLevelVariableElement`.
+ */
+class TopLevelVariableElementHandle extends PropertyInducingElementHandle
+ implements TopLevelVariableElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ TopLevelVariableElementHandle(TopLevelVariableElement element)
+ : super(element);
+
+ @override
+ ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;
+}
+
+/**
+ * Instances of the class `TypeParameterElementHandle` implement a handle to a
+ * [TypeParameterElement].
+ */
+class TypeParameterElementHandle extends ElementHandle
+ implements TypeParameterElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ TypeParameterElementHandle(TypeParameterElement element) : super(element);
+
+ @override
+ TypeParameterElement get actualElement =>
+ super.actualElement as TypeParameterElement;
+
+ @override
+ DartType get bound => actualElement.bound;
+
+ @override
+ ElementKind get kind => ElementKind.TYPE_PARAMETER;
+
+ @override
+ TypeParameterType get type => actualElement.type;
+}
+
+/**
+ * The abstract class `VariableElementHandle` implements the behavior common to objects that
+ * implement a handle to an `VariableElement`.
+ */
+abstract class VariableElementHandle extends ElementHandle
+ implements VariableElement {
+ /**
+ * Initialize a newly created element handle to represent the given element.
+ *
+ * @param element the element being represented
+ */
+ VariableElementHandle(VariableElement element) : super(element);
+
+ @override
+ VariableElement get actualElement => super.actualElement as VariableElement;
+
+ @override
+ bool get hasImplicitType => actualElement.hasImplicitType;
+
+ @override
+ FunctionElement get initializer => actualElement.initializer;
+
+ @override
+ bool get isConst => actualElement.isConst;
+
+ @override
+ bool get isFinal => actualElement.isFinal;
+
+ @override
+ bool get isPotentiallyMutatedInClosure =>
+ actualElement.isPotentiallyMutatedInClosure;
+
+ @override
+ bool get isPotentiallyMutatedInScope =>
+ actualElement.isPotentiallyMutatedInScope;
+
+ @override
+ bool get isStatic => actualElement.isStatic;
+
+ @override
+ DartType get type => actualElement.type;
+}
+
+/**
+ * TODO(scheglov) invalid implementation
+ */
+class WeakReference<T> {
+ final T value;
+ WeakReference(this.value);
+ T get() => value;
+}

Powered by Google App Engine
This is Rietveld 408576698