Index: dart/compiler/java/com/google/dart/compiler/resolver/Scope.java |
diff --git a/dart/compiler/java/com/google/dart/compiler/resolver/Scope.java b/dart/compiler/java/com/google/dart/compiler/resolver/Scope.java |
deleted file mode 100644 |
index 3655f4ecf79d141094f752486d784be3fd8964b2..0000000000000000000000000000000000000000 |
--- a/dart/compiler/java/com/google/dart/compiler/resolver/Scope.java |
+++ /dev/null |
@@ -1,161 +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. |
- |
-package com.google.dart.compiler.resolver; |
- |
-import com.google.common.annotations.VisibleForTesting; |
-import com.google.common.collect.Sets; |
-import com.google.dart.compiler.ast.DartBlock; |
-import com.google.dart.compiler.ast.DartIdentifier; |
-import com.google.dart.compiler.ast.DartVariableStatement; |
- |
-import java.util.ArrayList; |
-import java.util.LinkedHashMap; |
-import java.util.List; |
-import java.util.Map; |
-import java.util.Set; |
- |
-/** |
- * A scope used by {@link Resolver}. |
- */ |
-public class Scope { |
- |
- private final Map<String, Element> elements = new LinkedHashMap<String, Element>(); |
- private final Set<String> declaredButNotReachedVariables = Sets.newHashSet(); |
- private final Scope parent; |
- private final String name; |
- private List<LabelElement> labels; |
- private LibraryElement library; |
- private boolean stateReady; |
- |
- @VisibleForTesting |
- public Scope(String name, LibraryElement library, Scope parent) { |
- this.name = name; |
- this.parent = parent; |
- this.library = library; |
- } |
- |
- @VisibleForTesting |
- public Scope(String name, LibraryElement element) { |
- this(name, element, null); |
- } |
- |
- public void clear() { |
- elements.clear(); |
- } |
- |
- public Element declareElement(String name, Element element) { |
- return elements.put(name, element); |
- } |
- |
- public Element findLocalElement(String name) { |
- return elements.get(name); |
- } |
- |
- public Element findElement(LibraryElement fromLibrary, String name) { |
- Element element = null; |
- // Only lookup a private name in this scope if we are in the correct library |
- // or we are ignoring libraries (i.e., fromLibrary == null). |
- if (fromLibrary == null |
- || !DartIdentifier.isPrivateName(name) |
- || fromLibrary.equals(library)) { |
- element = findLocalElement(name); |
- } |
- if (element == null) { |
- if (parent != null) { |
- element = parent.findElement(fromLibrary, name); |
- } else { |
- element = null; |
- } |
- } |
- return element; |
- } |
- |
- public LibraryElement getLibrary() { |
- return library; |
- } |
- |
- public Element findLabel(String targetName, MethodElement innermostFunction) { |
- if (labels != null) { |
- for (LabelElement label : labels) { |
- if (label.getName().equals(targetName) |
- && innermostFunction == label.getEnclosingFunction()) { |
- return label; |
- } |
- } |
- } |
- return parent == null ? null : |
- parent.findLabel(targetName, innermostFunction); |
- } |
- |
- public boolean hasLocalLabel(String labelName) { |
- if (labels != null) { |
- for (LabelElement label : labels) { |
- if (label.getName().equals(labelName)) { |
- return true; |
- } |
- } |
- } |
- return false; |
- } |
- |
- public void markStateReady() { |
- this.stateReady = true; |
- } |
- |
- public boolean isStateReady() { |
- return stateReady; |
- } |
- |
- public Map<String, Element> getElements() { |
- return elements; |
- } |
- |
- /** |
- * @return <code>true</code> if local variable with given name is declared in the lexical context |
- * of {@link DartBlock}, but corresponding {@link DartVariableStatement} is not visited |
- * yet. So, using this variable is error. |
- */ |
- public boolean isDeclaredButNotReachedVariable(String name) { |
- return declaredButNotReachedVariables.contains(name); |
- } |
- |
- /** |
- * @see #isDeclaredButNotReachedVariable(String) |
- */ |
- public void addDeclaredButNotReachedVariable(String name) { |
- declaredButNotReachedVariables.add(name); |
- } |
- |
- /** |
- * @see #isDeclaredButNotReachedVariable(String) |
- */ |
- public void removeDeclaredButNotReachedVariable(String name) { |
- declaredButNotReachedVariables.remove(name); |
- } |
- |
- public String getName() { |
- return name; |
- } |
- |
- public Scope getParent() { |
- return parent; |
- } |
- |
- public boolean isClear() { |
- return elements.size() == 0; |
- } |
- |
- public void addLabel(LabelElement label) { |
- if (labels == null) { |
- labels = new ArrayList<LabelElement>(); |
- } |
- labels.add(label); |
- } |
- |
- @Override |
- public String toString() { |
- return getName() + " : \n" + elements.toString(); |
- } |
-} |