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

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

Issue 9921015: Visit name of DartDeclaration, set Element for DartIdentifier (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Visit more name-like nodes, tweaks for review 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/Resolver.java
diff --git a/compiler/java/com/google/dart/compiler/resolver/Resolver.java b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
index 4d1286d676c924690e8a090b8d7cde29a40efaba..c85bfe562a38ffd2eb3128a8f93e738736f65f87 100644
--- a/compiler/java/com/google/dart/compiler/resolver/Resolver.java
+++ b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
@@ -688,7 +688,7 @@ public class Resolver {
return element;
}
- public Element resolveVariable(DartVariable x, Modifiers modifiers) {
+ public VariableElement resolveVariable(DartVariable x, Modifiers modifiers) {
// Visit the initializer first.
resolve(x.getValue());
VariableElement element = Elements.variableElement(enclosingElement, x, x.getVariableName(), modifiers);
@@ -696,6 +696,7 @@ public class Resolver {
recordElement(x, element),
ResolverErrorCode.DUPLICATE_LOCAL_VARIABLE_ERROR,
ResolverErrorCode.DUPLICATE_LOCAL_VARIABLE_WARNING);
+ recordElement(x.getName(), element);
return element;
}
@@ -723,6 +724,7 @@ public class Resolver {
public Element visitLabel(DartLabel x) {
LabelElement previousLabel = currentLabel;
currentLabel = Elements.labelElement(x, x.getName(), innermostFunction);
+ recordElement(x.getLabel(), currentLabel);
recordElement(x, currentLabel);
x.visitChildren(this);
if (!labelsInScopes.contains(currentLabel)) {
@@ -755,6 +757,9 @@ public class Resolver {
resolve(functionNode.getBody());
innermostFunction = previousFunction;
getContext().popScope();
+ if (x.getName() != null) {
+ recordElement(x.getName(), element);
+ }
return recordElement(x, element);
}
@@ -940,6 +945,9 @@ public class Resolver {
}
private Element resolveIdentifier(DartIdentifier x, boolean isQualifier) {
+ if (x.getParent() instanceof DartLabel) {
+ return x.getElement();
+ }
Scope scope = getContext().getScope();
String name = x.getName();
Element element = scope.findElement(scope.getLibrary(), name);

Powered by Google App Engine
This is Rietveld 408576698