mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
reigiable local classes inside static methods (IDEA-163615)
This commit is contained in:
+3
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -66,8 +66,9 @@ public class JavaGenericsUtil {
|
||||
}
|
||||
|
||||
if (aClass != null && !aClass.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
PsiModifierListOwner enclosingStaticElement = PsiUtil.getEnclosingStaticElement(aClass, aClass.getContainingClass());
|
||||
PsiClass containingClass = PsiTreeUtil.getParentOfType(aClass, PsiClass.class, true);
|
||||
if (containingClass != null) {
|
||||
if (containingClass != null && (enclosingStaticElement == null || PsiTreeUtil.isAncestor(enclosingStaticElement, containingClass, false))) {
|
||||
return isReifiableType(JavaPsiFacade.getElementFactory(aClass.getProject()).createType(containingClass, resolved.getSubstitutor()));
|
||||
}
|
||||
}
|
||||
|
||||
+11
@@ -10,4 +10,15 @@ class B<T> {
|
||||
class C {}
|
||||
return obj instanceof <error descr="Illegal generic type for instanceof">C</error>;
|
||||
}
|
||||
|
||||
static <A> B<A> localClassInStaticMethod() {
|
||||
class C extends B<A> {
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return obj instanceof C;
|
||||
}
|
||||
}
|
||||
|
||||
return new C();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user