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

Unified Diff: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/correction/QuickFixProcessor.java

Issue 11280135: Issue 6836. Using undeclared identifier in static context is now warning. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 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
Index: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/correction/QuickFixProcessor.java
diff --git a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/correction/QuickFixProcessor.java b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/correction/QuickFixProcessor.java
index 5db336d2fb4588f3d999d69ab78dac5c41371c48..b7e29c41cb9136ed3a4364db0e2dd591b9949e60 100644
--- a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/correction/QuickFixProcessor.java
+++ b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/correction/QuickFixProcessor.java
@@ -60,6 +60,7 @@ import com.google.dart.tools.core.dom.rewrite.TrackedNodePosition;
import com.google.dart.tools.core.internal.model.PackageLibraryManagerProvider;
import com.google.dart.tools.core.internal.util.ResourceUtil;
import com.google.dart.tools.core.model.CompilationUnit;
+import com.google.dart.tools.core.model.DartElement;
import com.google.dart.tools.core.model.DartImport;
import com.google.dart.tools.core.model.DartLibrary;
import com.google.dart.tools.core.model.DartModel;
@@ -261,6 +262,8 @@ public class QuickFixProcessor implements IQuickFixProcessor {
ExecutionUtils.runIgnore(new RunnableEx() {
@Override
public void run() throws Exception {
+ System.out.println(errorCode);
Brian Wilkerson 2012/11/26 14:40:40 nit: if it's useful to keep these lines, they shou
+ System.out.println(errorCode.getClass());
if (errorCode == ResolverErrorCode.CANNOT_RESOLVE_METHOD
|| errorCode == ResolverErrorCode.CANNOT_RESOLVE_METHOD_IN_CLASS
|| errorCode == TypeErrorCode.INTERFACE_HAS_NO_METHOD_NAMED) {
@@ -279,7 +282,8 @@ public class QuickFixProcessor implements IQuickFixProcessor {
if (errorCode == ResolverErrorCode.CANNOT_RESOLVE_METHOD) {
addFix_importLibrary_withFunction(location);
}
- if (errorCode == ResolverErrorCode.CANNOT_BE_RESOLVED) {
+ if (errorCode == ResolverErrorCode.CANNOT_BE_RESOLVED
+ || errorCode == TypeErrorCode.CANNOT_BE_RESOLVED) {
addFix_importLibrary_withField(location);
}
if (errorCode == ResolverErrorCode.NEW_EXPRESSION_NOT_CONSTRUCTOR) {
@@ -462,7 +466,7 @@ public class QuickFixProcessor implements IQuickFixProcessor {
DartPluginImages.get(DartPluginImages.IMG_CORRECTION_CHANGE));
}
- private void addFix_importLibrary_withElement(String name) throws Exception {
+ private void addFix_importLibrary_withElement(String name, int elementType) throws Exception {
// ignore if private
if (name.startsWith("_")) {
return;
@@ -480,7 +484,9 @@ public class QuickFixProcessor implements IQuickFixProcessor {
for (DartImport imp : unit.getLibrary().getImports()) {
String prefix = imp.getPrefix();
DartLibrary library = imp.getLibrary();
- if (!StringUtils.isEmpty(prefix) && library.findTopLevelElement(name) != null) {
+ DartElement foundElement = library.findTopLevelElement(name);
+ if (!StringUtils.isEmpty(prefix) && foundElement != null
+ && foundElement.getElementType() == elementType) {
SourceRange range = SourceRangeFactory.forStartLength(node, 0);
addReplaceEdit(range, prefix + ".");
// add proposal
@@ -501,7 +507,8 @@ public class QuickFixProcessor implements IQuickFixProcessor {
// check workspace libraries
for (DartProject project : model.getDartProjects()) {
for (DartLibrary library : project.getDartLibraries()) {
- if (library.findTopLevelElement(name) != null) {
+ DartElement foundElement = library.findTopLevelElement(name);
+ if (foundElement != null && foundElement.getElementType() == elementType) {
if (!proposedLibraries.add(library)) {
continue;
}
@@ -517,7 +524,8 @@ public class QuickFixProcessor implements IQuickFixProcessor {
// check SDK libraries
PackageLibraryManager libraryManager = PackageLibraryManagerProvider.getPackageLibraryManager();
for (DartLibrary library : model.getBundledLibraries()) {
- if (library.findTopLevelElement(name) != null) {
+ DartElement foundElement = library.findTopLevelElement(name);
+ if (foundElement != null && foundElement.getElementType() == elementType) {
if (!proposedLibraries.add(library)) {
continue;
}
@@ -534,7 +542,7 @@ public class QuickFixProcessor implements IQuickFixProcessor {
private void addFix_importLibrary_withField(IProblemLocation location) throws Exception {
if (node instanceof DartIdentifier) {
String name = ((DartIdentifier) node).getName();
- addFix_importLibrary_withElement(name);
+ addFix_importLibrary_withElement(name, DartElement.VARIABLE);
}
}
@@ -542,14 +550,14 @@ public class QuickFixProcessor implements IQuickFixProcessor {
if (node instanceof DartIdentifier
&& getLocationInParent(node) == DART_METHOD_INVOCATION_TARGET) {
String name = ((DartIdentifier) node).getName();
- addFix_importLibrary_withElement(name);
+ addFix_importLibrary_withElement(name, DartElement.FUNCTION);
}
}
private void addFix_importLibrary_withType(IProblemLocation location) throws Exception {
if (mayBeTypeIdentifier(node)) {
String typeName = ((DartIdentifier) node).getName();
- addFix_importLibrary_withElement(typeName);
+ addFix_importLibrary_withElement(typeName, DartElement.TYPE);
}
}

Powered by Google App Engine
This is Rietveld 408576698