mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
do not suggest to replace with diamond for anonymous inner class (IDEA-70258)
This commit is contained in:
+7
@@ -0,0 +1,7 @@
|
||||
// "Replace with <>" "false"
|
||||
class Test {
|
||||
class DiamondTest<T> {
|
||||
DiamondTest<String> s = new DiamondTest<St<caret>ring>(){
|
||||
}; // anonymous inner class
|
||||
}
|
||||
}
|
||||
@@ -92,14 +92,6 @@ public class PsiDiamondType extends PsiType {
|
||||
return PsiDiamondType.DiamondInferenceResult.NULL_RESULT;
|
||||
}
|
||||
|
||||
final PsiAnonymousClass anonymousClass = newExpression.getAnonymousClass();
|
||||
if (anonymousClass != null) {
|
||||
final PsiElement resolve = anonymousClass.getBaseClassReference().resolve();
|
||||
if (resolve instanceof PsiClass && ((PsiClass)resolve).getContainingClass() != null) {
|
||||
return PsiDiamondType.DiamondInferenceResult.ANONYMOUS_INNER_RESULT;
|
||||
}
|
||||
|
||||
}
|
||||
return resolveInferredTypes(newExpression);
|
||||
}
|
||||
|
||||
@@ -109,6 +101,14 @@ public class PsiDiamondType extends PsiType {
|
||||
|
||||
public static DiamondInferenceResult resolveInferredTypes(PsiNewExpression newExpression,
|
||||
PsiElement context) {
|
||||
final PsiAnonymousClass anonymousClass = newExpression.getAnonymousClass();
|
||||
if (anonymousClass != null) {
|
||||
final PsiElement resolve = anonymousClass.getBaseClassReference().resolve();
|
||||
if (resolve instanceof PsiClass && ((PsiClass)resolve).getContainingClass() != null) {
|
||||
return PsiDiamondType.DiamondInferenceResult.ANONYMOUS_INNER_RESULT;
|
||||
}
|
||||
}
|
||||
|
||||
final PsiReferenceParameterList referenceParameterList = PsiTreeUtil.getChildOfType(newExpression, PsiReferenceParameterList.class);
|
||||
if (referenceParameterList != null && referenceParameterList.getTypeParameterElements().length > 0) {
|
||||
return DiamondInferenceResult.EXPLICIT_CONSTRUCTOR_TYPE_ARGS;
|
||||
|
||||
Reference in New Issue
Block a user