access object class should be calc corresponding to ref qualifier (IDEA-58377)

This commit is contained in:
anna
2010-10-25 19:47:32 +04:00
parent 0d47b0f720
commit 72f680902b
3 changed files with 31 additions and 2 deletions

View File

@@ -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);

View File

@@ -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(){}
}

View File

@@ -0,0 +1,13 @@
// "Make 'Bar.f' protected" "true"
public class Foo extends Bar{
void foo() {
new Runnable(){
public void run() {
f<caret>();
}
};
}
}
class Bar {
private void f(){}
}