summaryrefslogtreecommitdiff
path: root/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting')
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/CastObjectToIntJdk14.java7
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java15
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118533.java11
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118536.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java16
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java15
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java14
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125800.java10
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125816.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA24496.java17
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57290.java11
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57338.java17
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57388.java7
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA58692.java20
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67578.java8
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67600.java24
16 files changed, 210 insertions, 0 deletions
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/CastObjectToIntJdk14.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/CastObjectToIntJdk14.java
new file mode 100644
index 000000000000..4dc0dae7765d
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/CastObjectToIntJdk14.java
@@ -0,0 +1,7 @@
+class Test {
+
+ Object getObj() {return null;}
+ {
+ int a = (int) getObj();
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java
new file mode 100644
index 000000000000..57b1c73999d9
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA112117.java
@@ -0,0 +1,15 @@
+import java.io.Serializable;
+import java.util.Set;
+
+class IdeaGenericsFail {
+
+ public IdeaGenericsFail(Set<Klass<? extends Serializable>> map) {
+ }
+
+ public static class Klass<T extends Serializable> {
+ }
+
+ public static void main(final Set<Klass<?>> map) {
+ new IdeaGenericsFail(map);
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118533.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118533.java
new file mode 100644
index 000000000000..56a140091dbe
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118533.java
@@ -0,0 +1,11 @@
+abstract class Test {
+
+ interface InputFormat<K, V> {
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Class<? extends InputFormat<?, ?>> getInputFormatClass(final Class<? extends InputFormat> aClass)
+ throws ClassNotFoundException {
+ return (Class<? extends InputFormat<?, ?>>) aClass;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118536.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118536.java
new file mode 100644
index 000000000000..b747456247fe
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA118536.java
@@ -0,0 +1,10 @@
+import java.util.Comparator;
+
+class MyTest {
+ void foo(final Ordering<Comparable> natural){
+ compound(natural);
+ }
+ <U extends String> Ordering<U> compound(Comparator<? super U> secondaryComparator) { return null; }
+}
+abstract class Ordering <T> implements Comparator<T> {}
+
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java
new file mode 100644
index 000000000000..d3e018e64c34
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA119757.java
@@ -0,0 +1,16 @@
+import java.util.List;
+
+class Foo<T extends V,V> {
+ Foo(List<? extends T> l) {
+ }
+}
+class Bar {
+ void foo(Foo<String,String> foo) {}
+
+ void bar(List<String> l) {
+ foo<error descr="'foo(Foo<java.lang.String,java.lang.String>)' in 'Bar' cannot be applied to '(Foo<java.lang.String,java.lang.Object>)'">(new Foo<>(l))</error>;
+ foo<error descr="'foo(Foo<java.lang.String,java.lang.String>)' in 'Bar' cannot be applied to '(Foo<java.lang.String,java.lang.Object>)'">(f(l))</error>;
+ }
+
+ <T1 extends V1, V1> Foo<T1, V1> f(List<? extends T1> l) {return null;}
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java
new file mode 100644
index 000000000000..d2515eef82eb
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125423.java
@@ -0,0 +1,15 @@
+class FooBar<T> {
+ void foo(final FooBar<?> fooBar){
+ fooBar.supertype<error descr="'supertype(java.lang.Class<capture<?>>)' in 'FooBar' cannot be applied to '(java.lang.Class<java.lang.Iterable>)'">(Iterable.class)</error>;
+ }
+
+ void foo1(final FooBar<? super T> fooBar){
+ fooBar.supertype<error descr="'supertype(java.lang.Class<capture<? super T>>)' in 'FooBar' cannot be applied to '(java.lang.Class<java.lang.Iterable>)'">(Iterable.class)</error>;
+ }
+
+ void foo2(final FooBar<? extends T> fooBar){
+ fooBar.supertype<error descr="'supertype(java.lang.Class<? super capture<? extends T>>)' in 'FooBar' cannot be applied to '(java.lang.Class<java.lang.Iterable>)'">(Iterable.class)</error>;
+ }
+
+ void supertype(Class<? super T> superclass) {}
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java
new file mode 100644
index 000000000000..38580705a3c4
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125744.java
@@ -0,0 +1,14 @@
+class A {}
+interface B {}
+
+class MyTest {
+ public <M extends A & B> M getInvokedMember() {
+ return null;
+ }
+}
+
+class Bar {
+ void f(MyTest myTest) {
+ B member = myTest.getInvokedMember();
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125800.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125800.java
new file mode 100644
index 000000000000..1ec56b8a6c52
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125800.java
@@ -0,0 +1,10 @@
+import java.util.List;
+
+abstract class Test {
+ abstract <T extends List<String> & Runnable> T list();
+
+ public void test()
+ {
+ for (String s : list()) {}
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125816.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125816.java
new file mode 100644
index 000000000000..e17d850a9106
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA125816.java
@@ -0,0 +1,8 @@
+public enum State {
+ STATE1 {
+ State s = <error descr="It is illegal to access static member 'STATE2' from enum constructor or instance initializer">STATE2</error>;
+ },
+ STATE2 {
+ State s = <error descr="It is illegal to access static member 'STATE1' from enum constructor or instance initializer">STATE1</error>;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA24496.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA24496.java
new file mode 100644
index 000000000000..454e43d33f08
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA24496.java
@@ -0,0 +1,17 @@
+import java.util.List;
+import java.util.ArrayList;
+
+class GenericsError {
+
+ public <T> List<List<T>> method(List<T> list) {
+ List<List<T>> retVal = new ArrayList<List<T>>();
+ retVal.add(list);
+ return retVal;
+ }
+
+ public List<List<?>> otherMethod() {
+ List<?> list = null;
+ <error descr="Incompatible types. Found: 'java.util.List<java.util.List<capture<?>>>', required: 'java.util.List<java.util.List<?>>'">List<List<?>> result = method(list);</error>
+ return result;
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57290.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57290.java
new file mode 100644
index 000000000000..1898d59e9316
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57290.java
@@ -0,0 +1,11 @@
+
+class A<T,S> {
+ class B{}
+}
+
+class C {
+ void foo(A<?,?>.B x){
+ bar<error descr="'bar(A<capture<?>,capture<?>>.B)' in 'C' cannot be applied to '(A<capture<?>,capture<?>>.B)'">(x)</error>;
+ }
+ <T> void bar(A<T,T>.B x){}
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57338.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57338.java
new file mode 100644
index 000000000000..06e25b11f772
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57338.java
@@ -0,0 +1,17 @@
+abstract class A {
+ abstract <T> void foo();
+}
+
+abstract class B extends A {
+ void foo()
+ {
+ this.<Integer>foo();
+ }
+}
+
+abstract class C {
+ void foo()
+ {
+ this.<error descr="Method 'foo()' does not have type parameters"><Integer></error>foo();
+ }
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57388.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57388.java
new file mode 100644
index 000000000000..9a5502a47700
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57388.java
@@ -0,0 +1,7 @@
+
+class B<T extends Cloneable> {}
+class A<T> {
+ A<B<? extends Cloneable>> foo(A<B<?>> x){
+ return x;
+ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA58692.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA58692.java
new file mode 100644
index 000000000000..6571375f3fdc
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA58692.java
@@ -0,0 +1,20 @@
+class ExposeAnotherProblem {
+
+ class OneClass<T> {
+ public T get(){
+ return null;
+ }
+ }
+
+ class AnotherClass<T> {}
+
+
+ static <T, R extends OneClass<T>> R method1(AnotherClass<T> param) {
+ return null;
+ }
+
+ <E> E method2(AnotherClass<E> param){
+ return method1(param).get();
+ }
+
+} \ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67578.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67578.java
new file mode 100644
index 000000000000..d2e602c6fdb2
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67578.java
@@ -0,0 +1,8 @@
+class X<T> { }
+
+class A<T, S extends X<T>> {}
+
+class C {
+ void foo(A<?, X<?>> a){ <error descr="Inferred type 'X<?>' for type parameter 'S' is not within its bound; should extend 'X<capture<?>>'">bar(a)</error>; }
+ <T, S extends X<T>> void bar(A<T, S> a){ }
+}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67600.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67600.java
new file mode 100644
index 000000000000..6f0e625e21c2
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA67600.java
@@ -0,0 +1,24 @@
+abstract class A<T, S extends T>
+{
+ abstract S bar();
+ void foo(A<Runnable[], ? extends Cloneable[]> a){
+ <error descr="Incompatible types. Found: 'java.lang.Cloneable[]', required: 'java.lang.Runnable[]'">Runnable[] x = a.bar();</error>
+ }
+}
+
+abstract class AB<T, S extends T>
+{
+ abstract S bar();
+ void foo(AB<Runnable, ? extends Cloneable> a){
+ Runnable x = a.bar();
+ }
+}
+
+abstract class AC<T, S>
+{
+ abstract S bar();
+ void foo(AC<Runnable[], ? extends Cloneable[]> a){
+ <error descr="Incompatible types. Found: 'java.lang.Cloneable[]', required: 'java.lang.Runnable[]'">Runnable[] x = a.bar();</error>
+ }
+}
+