incompatible types: highlight only wrong arguments instead of full arg list (IDEA-220107)

GitOrigin-RevId: 38a12e4fa7ea27d156dae1fe6bc7bd6902db6251
This commit is contained in:
Anna Kozlova
2019-09-20 19:31:36 +00:00
committed by intellij-monorepo-bot
parent 7a1dd8a585
commit 1768efa804
7 changed files with 128 additions and 113 deletions
@@ -10,9 +10,9 @@ class Neg01<X extends Number> {
Neg01<?> n3 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
Neg01<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n4 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String)'">("")</error>;
Neg01<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n5 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Neg01<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n6 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Neg01<?> n7 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
<error descr="Cannot resolve symbol 'Foo'">Foo</error><? super String> n8 = new Neg01<><error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Neg01<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n5 = new Neg01<>(<error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Neg01<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n6 = new Neg01<>(<error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Neg01<?> n7 = new Neg01<>(<error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
<error descr="Cannot resolve symbol 'Foo'">Foo</error><? super String> n8 = new Neg01<>(<error descr="'Neg01(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg01' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
}
}
@@ -11,10 +11,10 @@ class Neg02 {
Foo<?> f3 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<?> f7 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<?> f7 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
}
void testQualified() {
@@ -23,9 +23,9 @@ class Neg02 {
Foo<?> f3 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<?> f7 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Neg02.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Neg02.Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Neg02.Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<?> f7 = new Neg02.Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Neg02.Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg02.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
}
}
@@ -11,10 +11,10 @@ class Neg03<U> {
Foo<?> f3 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<?> f7 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<?> f7 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
}
void testQualified_1() {
@@ -23,10 +23,10 @@ class Neg03<U> {
Foo<?> f3 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<?> f7 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Neg03<U>.Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = new Neg03<U>.Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = new Neg03<U>.Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<?> f7 = new Neg03<U>.Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = new Neg03<U>.Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
}
void testQualified_2(Neg03<U> n) {
@@ -35,9 +35,9 @@ class Neg03<U> {
Foo<?> f3 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f4 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<?> f7 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = n.new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> f5 = n.new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> f6 = n.new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<?> f7 = n.new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> f8 = n.new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Neg03.Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
}
}
@@ -10,9 +10,9 @@ class Neg04 {
Foo<?> n3 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n4 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String)'">("")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n5 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n6 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<?> n7 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n8 = new Foo<><error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">("", "")</error>;
Foo<<error descr="Type parameter 'java.lang.String' is not within its bound; should extend 'java.lang.Number'">String</error>> n5 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>> n6 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<?> n7 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
Foo<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>> n8 = new Foo<>(<error descr="'Foo(java.lang.Number & java.lang.String, java.lang.String)' in 'Foo' cannot be applied to '(java.lang.String, java.lang.String)'">""</error>, "");
}
}
@@ -22,8 +22,8 @@ class TestIDEA128101 {
construct(String.class, createPath(integerAttribute), createPath(stringAttribute));
construct1<error descr="'construct1(java.lang.Class<T>, TestIDEA128101.Path<K>...)' in 'TestIDEA128101' cannot be applied to '(java.lang.Class<java.lang.String>, TestIDEA128101.Path<java.lang.Integer>, TestIDEA128101.Path<java.lang.String>)'">(String.class, createPath(integerAttribute), createPath(stringAttribute))</error>;
construct2(String.class, createPath(integerAttribute), createPath(stringAttribute));
construct3<error descr="'construct3(java.lang.Class<java.lang.String>, TestIDEA128101.Path<? super K>...)' in 'TestIDEA128101' cannot be applied to '(java.lang.Class<java.lang.String>, TestIDEA128101.Path<java.lang.Integer>, TestIDEA128101.Path<java.lang.String>)'">(String.class, createPath(integerAttribute), createPath(stringAttribute))</error>;
construct4<error descr="'construct4(java.lang.Class<java.lang.String>, TestIDEA128101.Path<? super K>, TestIDEA128101.Path<? super K>)' in 'TestIDEA128101' cannot be applied to '(java.lang.Class<java.lang.String>, TestIDEA128101.Path<java.lang.Integer>, TestIDEA128101.Path<java.lang.String>)'">(String.class, createPath(integerAttribute), createPath(stringAttribute))</error>;
construct3(String.class, <error descr="'construct3(java.lang.Class<java.lang.String>, TestIDEA128101.Path<? super K>...)' in 'TestIDEA128101' cannot be applied to '(java.lang.Class<java.lang.String>, TestIDEA128101.Path<java.lang.Integer>, TestIDEA128101.Path<java.lang.String>)'">createPath(integerAttribute)</error>, <error descr="'construct3(java.lang.Class<java.lang.String>, TestIDEA128101.Path<? super K>...)' in 'TestIDEA128101' cannot be applied to '(java.lang.Class<java.lang.String>, TestIDEA128101.Path<java.lang.Integer>, TestIDEA128101.Path<java.lang.String>)'">createPath(stringAttribute)</error>);
construct4(String.class, <error descr="'construct4(java.lang.Class<java.lang.String>, TestIDEA128101.Path<? super K>, TestIDEA128101.Path<? super K>)' in 'TestIDEA128101' cannot be applied to '(java.lang.Class<java.lang.String>, TestIDEA128101.Path<java.lang.Integer>, TestIDEA128101.Path<java.lang.String>)'">createPath(integerAttribute)</error>, <error descr="'construct4(java.lang.Class<java.lang.String>, TestIDEA128101.Path<? super K>, TestIDEA128101.Path<? super K>)' in 'TestIDEA128101' cannot be applied to '(java.lang.Class<java.lang.String>, TestIDEA128101.Path<java.lang.Integer>, TestIDEA128101.Path<java.lang.String>)'">createPath(stringAttribute)</error>);
}
}