old inference (IDEA-157398)

This commit is contained in:
Anna Kozlova
2016-06-22 15:24:15 +03:00
parent 4b7b6bf5f0
commit 732c04076c
3 changed files with 20 additions and 4 deletions
@@ -455,6 +455,10 @@ public class PsiOldInferenceHelper implements PsiInferenceHelper {
if (arg == null) return null;
}
if (arg instanceof PsiCapturedWildcardType) {
arg = ((PsiCapturedWildcardType)arg).getUpperBound();
}
JavaResolveResult paramResult = ((PsiClassType)param).resolveGenerics();
PsiClass paramClass = (PsiClass)paramResult.getElement();
if (typeParam == paramClass) {
@@ -473,10 +477,6 @@ public class PsiOldInferenceHelper implements PsiInferenceHelper {
}
if (paramClass == null) return null;
if (arg instanceof PsiCapturedWildcardType) {
arg = ((PsiCapturedWildcardType)arg).getUpperBound();
}
if (!(arg instanceof PsiClassType)) return null;
JavaResolveResult argResult = ((PsiClassType)arg).resolveGenerics();
@@ -0,0 +1,12 @@
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
class Test {
private void foo(Map<String, ? extends Collection<?>> map, String severity) {
firstNonNull(map.get(severity), Collections.emptyList());
}
private static <T> T firstNonNull(T first, T second) {
return first;
}
}
@@ -609,4 +609,8 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testIntersectTypeParameterBounds() throws Exception {
doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false);
}
public void testTopLevelCaptureConversion() throws Exception {
doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false);
}
}