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

Unified Diff: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java

Issue 700943003: Fix issue 19424 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Clean up Created 6 years, 1 month 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
« no previous file with comments | « no previous file | editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/scope/LibraryImportScope.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
index 9fabc12d27045309f764646f5d6d82b49c079bd0..1edfcb9ea64eb3a92e04c8b9557241576ef52a98 100644
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
@@ -195,12 +195,19 @@ public class ElementResolver extends SimpleAstVisitor<Void> {
private final String name;
/**
+ * The identifier to be highlighted in case of an error
+ */
+ private final Identifier identifier;
Paul Berry 2014/11/04 23:07:41 Nit: although the comment makes it clear what this
Brian Wilkerson 2014/11/05 17:05:25 I renamed it.
+
+ /**
* Initialize a newly created synthetic identifier to have the given name.
*
* @param name the name of the synthetic identifier
+ * @param identifier the identifier to be highlighted in case of an error
*/
- private SyntheticIdentifier(String name) {
+ private SyntheticIdentifier(String name, Identifier identifier) {
this.name = name;
+ this.identifier = identifier;
}
@Override
@@ -224,11 +231,21 @@ public class ElementResolver extends SimpleAstVisitor<Void> {
}
@Override
+ public int getLength() {
+ return identifier.getLength();
+ }
+
+ @Override
public String getName() {
return name;
}
@Override
+ public int getOffset() {
+ return identifier.getOffset();
+ }
+
+ @Override
public int getPrecedence() {
return 16;
}
@@ -1176,7 +1193,7 @@ public class ElementResolver extends SimpleAstVisitor<Void> {
Element element = resolver.getNameScope().lookup(node, definingLibrary);
if (element == null && identifier.inSetterContext()) {
element = resolver.getNameScope().lookup(
- new SyntheticIdentifier(node.getName() + "="),
+ new SyntheticIdentifier(node.getName() + "=", node),
definingLibrary);
}
if (element == null) {
@@ -1710,7 +1727,7 @@ public class ElementResolver extends SimpleAstVisitor<Void> {
PrefixElement prefixElement = importElement.getPrefix();
if (prefixElement != null) {
Identifier prefixedIdentifier = new SyntheticIdentifier(prefixElement.getName() + "."
- + identifier.getName());
+ + identifier.getName(), identifier);
Element importedElement = nameScope.lookup(prefixedIdentifier, definingLibrary);
if (importedElement != null) {
if (element == null) {
@@ -2820,14 +2837,15 @@ public class ElementResolver extends SimpleAstVisitor<Void> {
}
return element;
} else if (target instanceof SimpleIdentifier) {
- Element targetElement = ((SimpleIdentifier) target).getStaticElement();
+ SimpleIdentifier identifier = (SimpleIdentifier) target;
+ Element targetElement = identifier.getStaticElement();
if (targetElement instanceof PrefixElement) {
//
// Look to see whether the name of the method is really part of a prefixed identifier for an
// imported top-level function or top-level getter that returns a function.
//
- final String name = ((SimpleIdentifier) target).getName() + "." + methodName;
- Identifier functionName = new SyntheticIdentifier(name);
+ final String name = identifier.getName() + "." + methodName;
+ Identifier functionName = new SyntheticIdentifier(name, methodName);
Element element = resolver.getNameScope().lookup(functionName, definingLibrary);
if (element != null) {
// TODO(brianwilkerson) This isn't a method invocation, it's a function invocation where
@@ -3001,7 +3019,7 @@ public class ElementResolver extends SimpleAstVisitor<Void> {
} else if (element == null
&& (node.inSetterContext() || node.getParent() instanceof CommentReference)) {
element = resolver.getNameScope().lookup(
- new SyntheticIdentifier(node.getName() + "="),
+ new SyntheticIdentifier(node.getName() + "=", node),
definingLibrary);
}
ClassElement enclosingClass = resolver.getEnclosingClass();
« no previous file with comments | « no previous file | editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/scope/LibraryImportScope.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698