diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 1cb56e3c748e..8c66f5218709 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -264,8 +264,11 @@ public class HighlightUtil { minModifier = PsiModifier.PUBLIC; } String[] modifiers = {PsiModifier.PACKAGE_LOCAL, PsiModifier.PROTECTED, PsiModifier.PUBLIC,}; - PsiClass accessObjectClass = PsiTreeUtil.getParentOfType(place, PsiClass.class, false); - + PsiClass accessObjectClass = null; + PsiElement qualifier = place.getQualifier(); + if (qualifier instanceof PsiExpression) { + accessObjectClass = (PsiClass)PsiUtil.getAccessObjectClass((PsiExpression)qualifier).getElement(); + } for (int i = ArrayUtil.indexOf(modifiers, minModifier); i < modifiers.length; i++) { @Modifier String modifier = modifiers[i]; modifierListCopy.setModifierProperty(modifier, true); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/afterInAnonymous.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/afterInAnonymous.java new file mode 100644 index 000000000000..66dcd4cc03b5 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/afterInAnonymous.java @@ -0,0 +1,13 @@ +// "Make 'Bar.f' protected" "true" +public class Foo extends Bar{ + void foo() { + new Runnable(){ + public void run() { + f(); + } + }; + } +} +class Bar { + protected void f(){} +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/beforeInAnonymous.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/beforeInAnonymous.java new file mode 100644 index 000000000000..30a3224757bd --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/beforeInAnonymous.java @@ -0,0 +1,13 @@ +// "Make 'Bar.f' protected" "true" +public class Foo extends Bar{ + void foo() { + new Runnable(){ + public void run() { + f(); + } + }; + } +} +class Bar { + private void f(){} +}