diff --git a/java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java b/java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java index 1ada9aa5551e..080ef4a3bbe8 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java +++ b/java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java @@ -126,6 +126,8 @@ public class TypesDistinctProver { final PsiClass boundClass1 = PsiUtil.resolveClassInType(extendsBound1); final PsiClass boundClass2 = PsiUtil.resolveClassInType(extendsBound2); if (boundClass1 != null && boundClass2 != null) { + if (extendsBound1 instanceof PsiClassType && extendsBound2 instanceof PsiClassType && + (((PsiClassType)extendsBound1).isRaw() ^ ((PsiClassType)extendsBound2).isRaw())) return true; return proveExtendsBoundsDistinct(type1, type2, boundClass1, boundClass2); } return provablyDistinct(extendsBound1, extendsBound2, 1); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA97276.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA97276.java index c059e83939f2..625d70622fb8 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA97276.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA97276.java @@ -2,3 +2,16 @@ interface Interf {} class SomeClass { static > Class someMethod(I i) { return null; } } + +interface OtherInterf {} +interface ImmutableSet {} + +class SomeOtherClass { + static ImmutableSet>> someOtherMethod() { + return (ImmutableSet>>)aux(OtherInterf.class); + } + + static ImmutableSet> aux(Class t) { + return null; + } +}