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

Unified Diff: compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java

Issue 9700019: Use NodeElement to access Node in Resolver (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 9 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: compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java
diff --git a/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java b/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java
index 8b7a9688d3226598925b7737a6d2b883b7c0c534..bab38963c55c3818c42d336fa54b4731af962687 100644
--- a/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java
+++ b/compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java
@@ -4,6 +4,7 @@
package com.google.dart.compiler.resolver;
+import com.google.common.collect.Lists;
import com.google.dart.compiler.ast.DartClass;
import com.google.dart.compiler.ast.DartDeclaration;
import com.google.dart.compiler.ast.DartParameterizedTypeNode;
@@ -26,7 +27,7 @@ class ClassElementImplementation extends AbstractNodeElement implements ClassNod
private InterfaceType type;
private InterfaceType supertype;
private InterfaceType defaultClass;
- private List<InterfaceType> interfaces;
+ private final List<InterfaceType> interfaces = Lists.newArrayList();
private final boolean isInterface;
private final String nativeName;
private final Modifiers modifiers;
@@ -40,8 +41,8 @@ class ClassElementImplementation extends AbstractNodeElement implements ClassNod
@SuppressWarnings("unused")
private volatile Set<InterfaceType> subtypes;
- private final List<ConstructorElement> constructors;
- private final ElementMap members;
+ private final List<ConstructorNodeElement> constructors = Lists.newArrayList();
+ private final ElementMap members = new ElementMap();
private final LibraryElement library;
@@ -57,9 +58,6 @@ class ClassElementImplementation extends AbstractNodeElement implements ClassNod
super(node, name);
this.nativeName = nativeName;
this.library = library;
- constructors = new ArrayList<ConstructorElement>();
- members = new ElementMap();
- interfaces = new ArrayList<InterfaceType>();
if (node != null) {
isInterface = node.isInterface();
modifiers = node.getModifiers();
@@ -118,8 +116,8 @@ class ClassElementImplementation extends AbstractNodeElement implements ClassNod
}
@Override
- public Iterable<Element> getMembers() {
- return new Iterable<Element>() {
+ public Iterable<NodeElement> getMembers() {
+ return new Iterable<NodeElement>() {
// The only use case for calling getMembers() is for iterating through the
// members. You should not be able to add or remove members through the
// object returned by this method. Returning members or members.value()
@@ -132,14 +130,14 @@ class ClassElementImplementation extends AbstractNodeElement implements ClassNod
// Strictly speaking, we should also wrap the iterator as we don't want
// the method Iterator.remove to be used either.
@Override
- public Iterator<Element> iterator() {
+ public Iterator<NodeElement> iterator() {
return members.values().iterator();
}
};
}
@Override
- public List<ConstructorElement> getConstructors() {
+ public List<ConstructorNodeElement> getConstructors() {
return constructors;
}
@@ -178,7 +176,7 @@ class ClassElementImplementation extends AbstractNodeElement implements ClassNod
return declarationNameWithTypeParameter;
}
- void addMethod(MethodElement member) {
+ void addMethod(MethodNodeElement member) {
String name = member.getName();
if (member.getModifiers().isOperator()) {
name = "operator " + name;
@@ -186,11 +184,11 @@ class ClassElementImplementation extends AbstractNodeElement implements ClassNod
members.add(name, member);
}
- void addConstructor(ConstructorElement member) {
+ void addConstructor(ConstructorNodeElement member) {
constructors.add(member);
}
- void addField(FieldElement member) {
+ void addField(FieldNodeElement member) {
members.add(member.getName(), member);
}

Powered by Google App Engine
This is Rietveld 408576698