Index: pkg/compiler/lib/src/resolution/scope.dart |
diff --git a/pkg/compiler/lib/src/resolution/scope.dart b/pkg/compiler/lib/src/resolution/scope.dart |
deleted file mode 100644 |
index 79fdacf1115744d3dd45e3794d9d07ea7bced7ce..0000000000000000000000000000000000000000 |
--- a/pkg/compiler/lib/src/resolution/scope.dart |
+++ /dev/null |
@@ -1,174 +0,0 @@ |
-// Copyright (c) 2012, 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. |
- |
-part of resolution; |
- |
-abstract class Scope { |
- /** |
- * Adds [element] to this scope. This operation is only allowed on mutable |
- * scopes such as [MethodScope] and [BlockScope]. |
- */ |
- Element add(Element element); |
- |
- /** |
- * Looks up the [Element] for [name] in this scope. |
- */ |
- Element lookup(String name); |
- |
- static Scope buildEnclosingScope(Element element) { |
- return element.enclosingElement != null |
- ? element.enclosingElement.buildScope() : element.buildScope(); |
- } |
-} |
- |
-abstract class NestedScope extends Scope { |
- final Scope parent; |
- |
- NestedScope(this.parent); |
- |
- Element lookup(String name) { |
- Element result = localLookup(name); |
- if (result != null) return result; |
- return parent.lookup(name); |
- } |
- |
- Element localLookup(String name); |
-} |
- |
-class VariableDefinitionScope extends NestedScope { |
- final String variableName; |
- bool variableReferencedInInitializer = false; |
- |
- VariableDefinitionScope(Scope parent, this.variableName) : super(parent); |
- |
- Element localLookup(String name) { |
- if (name == variableName) { |
- variableReferencedInInitializer = true; |
- } |
- return null; |
- } |
- |
- Element add(Element newElement) { |
- throw "Cannot add element to VariableDefinitionScope"; |
- } |
-} |
- |
-/** |
- * [TypeDeclarationScope] defines the outer scope of a type declaration in |
- * which the declared type variables and the entities in the enclosing scope are |
- * available but where declared and inherited members are not available. This |
- * scope is only used for class declarations during resolution of the |
- * class hierarchy. In all other cases [ClassScope] is used. |
- */ |
-class TypeDeclarationScope extends NestedScope { |
- final TypeDeclarationElement element; |
- |
- TypeDeclarationScope(parent, this.element) |
- : super(parent) { |
- assert(parent != null); |
- } |
- |
- Element add(Element newElement) { |
- throw "Cannot add element to TypeDeclarationScope"; |
- } |
- |
- Element lookupTypeVariable(String name) { |
- List<DartType> typeVariables = element.typeVariables; |
- for (TypeVariableType type in typeVariables) { |
- if (type.name == name) { |
- return type.element; |
- } |
- } |
- return null; |
- } |
- |
- Element localLookup(String name) => lookupTypeVariable(name); |
- |
- String toString() => |
- 'TypeDeclarationScope($element)'; |
-} |
- |
-abstract class MutableScope extends NestedScope { |
- final Map<String, Element> elements; |
- |
- MutableScope(Scope parent) |
- : super(parent), |
- this.elements = new Map<String, Element>() { |
- assert(parent != null); |
- } |
- |
- Element add(Element newElement) { |
- if (elements.containsKey(newElement.name)) { |
- return elements[newElement.name]; |
- } |
- elements[newElement.name] = newElement; |
- return newElement; |
- } |
- |
- Element localLookup(String name) => elements[name]; |
-} |
- |
-class MethodScope extends MutableScope { |
- final Element element; |
- |
- MethodScope(Scope parent, this.element) |
- : super(parent); |
- |
- String toString() => 'MethodScope($element${elements.keys.toList()})'; |
-} |
- |
-class BlockScope extends MutableScope { |
- BlockScope(Scope parent) : super(parent); |
- |
- String toString() => 'BlockScope(${elements.keys.toList()})'; |
-} |
- |
-/** |
- * [ClassScope] defines the inner scope of a class/interface declaration in |
- * which declared members, declared type variables, entities in the enclosing |
- * scope and inherited members are available, in the given order. |
- */ |
-class ClassScope extends TypeDeclarationScope { |
- ClassElement get element => super.element; |
- |
- ClassScope(Scope parentScope, ClassElement element) |
- : super(parentScope, element) { |
- assert(parent != null); |
- } |
- |
- Element localLookup(String name) { |
- Element result = element.lookupLocalMember(name); |
- if (result != null) return result; |
- return super.localLookup(name); |
- } |
- |
- Element lookup(String name) { |
- Element result = localLookup(name); |
- if (result != null) return result; |
- result = parent.lookup(name); |
- if (result != null) return result; |
- return element.lookupSuperMember(name); |
- } |
- |
- Element add(Element newElement) { |
- throw "Cannot add an element in a class scope"; |
- } |
- |
- String toString() => 'ClassScope($element)'; |
-} |
- |
-class LibraryScope implements Scope { |
- final LibraryElement library; |
- |
- LibraryScope(LibraryElement this.library); |
- |
- Element localLookup(String name) => library.find(name); |
- Element lookup(String name) => localLookup(name); |
- |
- Element add(Element newElement) { |
- throw "Cannot add an element to a library scope"; |
- } |
- |
- String toString() => 'LibraryScope($library)'; |
-} |