mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
when detect inaccessible classes in static context take into account NewExpression qualifiers
This commit is contained in:
+17
-1
@@ -905,7 +905,23 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
|
||||
final PsiClass aClass = ((PsiClass)resolved).getContainingClass();
|
||||
if (aClass != null) {
|
||||
final PsiElement qualifier = ref.getQualifier();
|
||||
final PsiElement place = qualifier instanceof PsiJavaCodeReferenceElement ? ((PsiJavaCodeReferenceElement)qualifier).resolve() : ref;
|
||||
final PsiElement place;
|
||||
if (qualifier instanceof PsiJavaCodeReferenceElement) {
|
||||
place = ((PsiJavaCodeReferenceElement)qualifier).resolve();
|
||||
}
|
||||
else {
|
||||
if (parent instanceof PsiNewExpression) {
|
||||
final PsiExpression newQualifier = ((PsiNewExpression)parent).getQualifier();
|
||||
if (newQualifier != null) {
|
||||
place = PsiUtil.resolveClassInType(newQualifier.getType());
|
||||
} else {
|
||||
place = ref;
|
||||
}
|
||||
}
|
||||
else {
|
||||
place = ref;
|
||||
}
|
||||
}
|
||||
if (PsiTreeUtil.isAncestor(aClass, place, false) && aClass.hasTypeParameters()) {
|
||||
myHolder.add(HighlightClassUtil.checkCreateInnerClassFromStaticContext(ref, place, (PsiClass)resolved));
|
||||
}
|
||||
|
||||
+12
@@ -48,3 +48,15 @@ class MyTest1 {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MyTest2<T> {
|
||||
static class A {
|
||||
private MyTest2 myTest;
|
||||
|
||||
public Object foo() {
|
||||
return myTest.new Bar();
|
||||
}
|
||||
}
|
||||
|
||||
class Bar {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user