ambiguity (IDEA-123352)

This commit is contained in:
Anna Kozlova
2014-04-03 17:15:53 +02:00
parent 9b1c967f87
commit 1daf8f50df
5 changed files with 51 additions and 8 deletions
@@ -0,0 +1,17 @@
import java.util.*;
class Test {
class Predicate<T> {
<S extends T> boolean test(final Collection<T> src) {
return true;
}
<S extends T> boolean test(final Iterable<T> iterable) {
return false;
}
}
public void testPredicate() {
final Predicate<Integer> predicate = new Predicate<>();
predicate.test(new ArrayList<Integer>());
}
}
@@ -0,0 +1,19 @@
import java.util.*;
class Test {
class Predicate<T> {
private <<warning descr="Type parameter 'S' is never used">S</warning> extends T> boolean test(final Collection<T> src) {
System.out.println(src);
return true;
}
private <<warning descr="Type parameter 'S' is never used">S</warning> extends T> boolean <warning descr="Private method 'test(java.lang.Iterable<T>)' is never used">test</warning>(final Iterable<T> iterable) {
System.out.println(iterable);
return false;
}
}
public void testPredicate() {
final Predicate<Integer> predicate = new Predicate<>();
predicate.test(new ArrayList<Integer>());
}
}
@@ -341,6 +341,7 @@ public class GenericsHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testIDEA120563() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
public void testIDEA121400() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
public void testIDEA123316() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
public void testIDEA123352() { doTest(LanguageLevel.JDK_1_7, JavaSdkVersion.JDK_1_7, false); }
public void testJavaUtilCollections_NoVerify() throws Exception {
PsiClass collectionsClass = getJavaFacade().findClass("java.util.Collections", GlobalSearchScope.moduleWithLibrariesScope(getModule()));
@@ -71,6 +71,10 @@ public class MostSpecificResolutionTest extends LightDaemonAnalyzerTestCase {
doTest();
}
public void testIDEA123352() throws Exception {
doTest();
}
private void doTest() {
doTest(true);
}