register quick fixes on "expression expected" (IDEA-101705)

This commit is contained in:
anna
2013-02-28 19:31:00 +01:00
parent dcf122cebe
commit ae9e9ab0c5
6 changed files with 21 additions and 3 deletions
@@ -1609,7 +1609,10 @@ public class HighlightUtil extends HighlightUtilBase {
if (parent instanceof PsiReferenceExpression || parent instanceof PsiMethodCallExpression) return null;
if (resolved instanceof PsiVariable) return null;
String description = JavaErrorMessages.message("expression.expected");
return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(expression).descriptionAndTooltip(description).create();
final HighlightInfo info =
HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(expression).descriptionAndTooltip(description).create();
UnresolvedReferenceQuickFixProvider.registerReferenceFixes(expression, new QuickFixActionRegistrarImpl(info));
return info;
}
@@ -85,6 +85,7 @@ public class CreateFromUsageUtils {
if (!unresolvedOnly) {
for (JavaResolveResult result : results) {
if (!result.isValidResult()) return false;
if (result.getElement() instanceof PsiPackage) return false;
}
}
return true;
@@ -60,7 +60,7 @@ public class CreateLocalFromUsageFix extends CreateVarFromUsageFix {
@Override
protected void invokeImpl(final PsiClass targetClass) {
if (CreateFromUsageUtils.isValidReference(myReferenceExpression, true)) {
if (CreateFromUsageUtils.isValidReference(myReferenceExpression, false)) {
return;
}
@@ -67,7 +67,7 @@ public class CreateParameterFromUsageFix extends CreateVarFromUsageFix {
@Override
protected void invokeImpl(PsiClass targetClass) {
if (CreateFromUsageUtils.isValidReference(myReferenceExpression, true)) return;
if (CreateFromUsageUtils.isValidReference(myReferenceExpression, false)) return;
final Project project = myReferenceExpression.getProject();
@@ -0,0 +1,7 @@
// "Create Local Variable 'java'" "true"
public class A {
void foo() {
String java = "";
}
}
@@ -0,0 +1,7 @@
// "Create Local Variable 'java'" "true"
public class A {
void foo() {
ja<caret>va = "";
}
}