mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-30 02:09:59 +07:00
[java-highlighting] test-data adjusted (mostly anchors) after recent updates
Part of IDEA-365344 Create a new Java error highlighter with minimal dependencies (PSI only) GitOrigin-RevId: 1e1b77009dc78de49c7cc5c44d4704937397bb23
This commit is contained in:
committed by
intellij-monorepo-bot
parent
db46304375
commit
c449c341b7
@@ -11,36 +11,36 @@ public class a {
|
||||
byte b1 = 1;
|
||||
|
||||
// marked: OK, as literal value is out of byte-range and does not compile
|
||||
<error descr="Incompatible types. Found: 'int', required: 'byte'">byte b2 = 1000;</error>
|
||||
byte b2 = <error descr="Incompatible types. Found: 'int', required: 'byte'">1000;</error>
|
||||
|
||||
// marked: OK, as char-value cannot be determined and does not compile
|
||||
char c = 0;
|
||||
<error descr="Incompatible types. Found: 'char', required: 'byte'">byte b3 = c;</error>
|
||||
byte b3 = <error descr="Incompatible types. Found: 'char', required: 'byte'">c</error>;
|
||||
|
||||
// marked: OK, as literal char-value is out of byte-range and does not compile
|
||||
<error descr="Incompatible types. Found: 'char', required: 'byte'">byte b4 = '\u20AC';</error>
|
||||
byte b4 = <error descr="Incompatible types. Found: 'char', required: 'byte'">'\u20AC';</error>
|
||||
|
||||
<error descr="Incompatible types. Found: 'int', required: 'byte'">byte b5 = '\n' - 4 + 1800;</error>
|
||||
byte b5 = <error descr="Incompatible types. Found: 'int', required: 'byte'">'\n' - 4 + 1800;</error>
|
||||
// literal char-value is in byte-range and compiles fine
|
||||
byte b6 = '\u007F';
|
||||
byte b7=(short) 0;
|
||||
<error descr="Incompatible types. Found: 'long', required: 'byte'">byte b8 = (long)0;</error>
|
||||
byte b8 = <error descr="Incompatible types. Found: 'long', required: 'byte'">(long)0;</error>
|
||||
|
||||
<error descr="Incompatible types. Found: 'double', required: 'float'">float f1 = 77.3;</error>
|
||||
float f1 = <error descr="Incompatible types. Found: 'double', required: 'float'">77.3;</error>
|
||||
float f2 = 77.3F;
|
||||
|
||||
short s1 = 1 + FI;
|
||||
<error descr="Incompatible types. Found: 'int', required: 'short'">short s2 = 1000000;</error>
|
||||
short s2 = <error descr="Incompatible types. Found: 'int', required: 'short'">1000000;</error>
|
||||
short s3 = 'F' % FIBIG;
|
||||
|
||||
char c1 = 0;
|
||||
<error descr="Incompatible types. Found: 'int', required: 'char'">char c2 = -1 + FIBIG;</error>
|
||||
char c2 = <error descr="Incompatible types. Found: 'int', required: 'char'">-1 + FIBIG;</error>
|
||||
char c3=(byte) 0;
|
||||
char c4=(short) 0;
|
||||
<error descr="Incompatible types. Found: 'long', required: 'char'">char c5 = 0L;</error>
|
||||
char c5 = <error descr="Incompatible types. Found: 'long', required: 'char'">0L;</error>
|
||||
|
||||
int i1='d';
|
||||
<error descr="Incompatible types. Found: 'long', required: 'int'">int i2 = 1L;</error>
|
||||
int i2 = <error descr="Incompatible types. Found: 'long', required: 'int'">1L;</error>
|
||||
|
||||
Integer destination = 25;
|
||||
<error descr="Incompatible types. Found: 'double', required: 'java.lang.Integer'">destination += 2.0</error>;
|
||||
|
||||
@@ -13,6 +13,6 @@ class C {
|
||||
}
|
||||
|
||||
void f() {
|
||||
<error descr="Incompatible types. Found: 'void', required: 'java.lang.Object'">Object o = f();</error>
|
||||
Object o = <error descr="Incompatible types. Found: 'void', required: 'java.lang.Object'">f</error>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,11 +70,11 @@ class c {
|
||||
byte bbbbbb=ccons;
|
||||
// too big char to fit in short
|
||||
final char bigchar='\uffff';
|
||||
<error descr="Incompatible types. Found: 'char', required: 'short'">short sbig = bigchar;</error>
|
||||
short sbig = <error descr="Incompatible types. Found: 'char', required: 'short'">bigchar</error>;
|
||||
}
|
||||
|
||||
void g(boolean f, byte b) {
|
||||
byte c = '\n';
|
||||
<error descr="Incompatible types. Found: 'int', required: 'byte'">byte next = f ? b : '\n';</error>
|
||||
byte next = <error descr="Incompatible types. Found: 'int', required: 'byte'">f ? b : '\n';</error>
|
||||
}
|
||||
}
|
||||
@@ -16,8 +16,8 @@ class UnsupportedFeatures {
|
||||
|
||||
<error descr="For-each loops are not supported at language level '1.4'">for (Object s : list) {}</error>
|
||||
Arrays.asList<error descr="'asList(java.lang.String...)' in 'java.util.Arrays' cannot be applied to '(java.lang.String)'">("")</error>;
|
||||
<error descr="Incompatible types. Found: 'boolean', required: 'java.lang.Boolean'">Boolean b = true;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Boolean', required: 'boolean'">boolean b1 = Boolean.TRUE;</error>
|
||||
Boolean b = <error descr="Incompatible types. Found: 'boolean', required: 'java.lang.Boolean'">true;</error>
|
||||
boolean b1 = Boolean.<error descr="Incompatible types. Found: 'java.lang.Boolean', required: 'boolean'">TRUE</error>;
|
||||
|
||||
java.lang.annotation.ElementType t = null;
|
||||
switch (<error descr="Incompatible types. Found: 'java.lang.annotation.ElementType', required: 'byte, char, short or int'">t</error>) { }
|
||||
|
||||
@@ -2,7 +2,7 @@ import java.lang.reflect.*;
|
||||
|
||||
class Example {
|
||||
private void demo() {
|
||||
<error descr="Incompatible types. Found: 'java.lang.reflect.TypeVariable<java.lang.Class<capture<? extends Example>>>[]', required: 'java.lang.reflect.TypeVariable<java.lang.Class<? extends Example>>[]'">TypeVariable<Class<? extends Example>>[] typeParameters = getClass().getTypeParameters();</error>
|
||||
TypeVariable<Class<? extends Example>>[] typeParameters = getClass().<error descr="Incompatible types. Found: 'java.lang.reflect.TypeVariable<java.lang.Class<capture<? extends Example>>>[]', required: 'java.lang.reflect.TypeVariable<java.lang.Class<? extends Example>>[]'">getTypeParameters</error>();
|
||||
Object typeParameters1 = <error descr="Inconvertible types; cannot cast 'java.lang.reflect.TypeVariable<java.lang.Class<capture<? extends Example>>>[]' to 'java.lang.reflect.TypeVariable<java.lang.Class<? extends Example>>[]'">(TypeVariable<Class<? extends Example>>[]) getClass().getTypeParameters()</error>;
|
||||
}
|
||||
|
||||
@@ -15,13 +15,13 @@ class Example {
|
||||
class Foo<T> {
|
||||
|
||||
public static Class<? extends Foo<?>> fFoo(final Foo<?> foo) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Foo>>', required: 'java.lang.Class<? extends Foo<?>>'">Class<? extends Foo<?>> fooClass = foo.getClass();</error>
|
||||
Class<? extends Foo<?>> fooClass = foo.<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Foo>>', required: 'java.lang.Class<? extends Foo<?>>'">getClass</error>();
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Foo>>', required: 'java.lang.Class<? extends Foo<?>>'">fooClass = foo.getClass()</error>;
|
||||
return foo.<error descr="Incompatible types. Found: 'java.lang.Class<? extends Foo>', required: 'java.lang.Class<? extends Foo<?>>'">getClass</error>();
|
||||
}
|
||||
|
||||
public static Class<? extends Foo<? extends String>> fFoo1(final Foo<? extends String> foo) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Foo>>', required: 'java.lang.Class<? extends Foo<? extends java.lang.String>>'">Class<? extends Foo<? extends String>> fooClass = foo.getClass();</error>
|
||||
Class<? extends Foo<? extends String>> fooClass = foo.<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Foo>>', required: 'java.lang.Class<? extends Foo<? extends java.lang.String>>'">getClass</error>();
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Foo>>', required: 'java.lang.Class<? extends Foo<? extends java.lang.String>>'">fooClass = foo.getClass()</error>;
|
||||
return foo.<error descr="Incompatible types. Found: 'java.lang.Class<? extends Foo>', required: 'java.lang.Class<? extends Foo<? extends java.lang.String>>'">getClass</error>();
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import java.util.List;
|
||||
|
||||
public class Test {
|
||||
private static final <error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<? extends java.lang.Cloneable & java.io.Serializable>>', required: 'java.util.List<java.lang.Class<?>>'">List<Class<?>> PRIMITIVE_ARRAY_TYPES = asList(byte[].class, int[].class);</error>
|
||||
private static final List<Class<?>> PRIMITIVE_ARRAY_TYPES = <error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<? extends java.lang.Cloneable & java.io.Serializable>>', required: 'java.util.List<java.lang.Class<?>>'">asList</error>(byte[].class, int[].class);
|
||||
private static final List<?> PRIMITIVE_ARRAY_TYPES1 = asList(byte[].class, int[].class);
|
||||
|
||||
public static <T> List<T> asList(T... a) {
|
||||
|
||||
@@ -53,15 +53,15 @@ abstract class C {
|
||||
try { f(); } catch (E e) { } catch (<error descr="Exception 'C.E1' has already been caught">E1</error> | <error descr="Exception 'C.E3' has already been caught">E3</error> e) { }
|
||||
try { f(); } catch (E1 | E2 e) { } catch (<error descr="Exception 'C.E2' has already been caught">E2</error> e) { }
|
||||
|
||||
try { f(); } catch (E1 | E2 e) { <error descr="Incompatible types. Found: 'C.E1 | C.E2', required: 'C.E2'">E2 ee = e;</error> }
|
||||
try { f(); } catch (E1 | E2 e) { E2 ee = <error descr="Incompatible types. Found: 'C.E1 | C.E2', required: 'C.E2'">e</error>; }
|
||||
try { f(); } catch (E1 | E2 e) { <error descr="Cannot assign a value to final variable 'e'">e</error> = new E1(); }
|
||||
try { f(); } catch (E1 | E2 e) { <error descr="Incompatible types. Found: 'C.E', required: 'C.E1 | C.E2'">e = new E()</error>; }
|
||||
|
||||
try { g(); }
|
||||
catch (IE1 | IE2 e) {
|
||||
Class<? extends E> clazz1 = e.getClass();
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends C.E>>', required: 'java.lang.Class<? extends C.IE1>'">Class<? extends IE1> clazz2 = e.getClass();</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends C.E>>', required: 'java.lang.Class<? extends C.I>'">Class<? extends I> clazz3 = e.getClass();</error>
|
||||
Class<? extends IE1> clazz2 = e.<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends C.E>>', required: 'java.lang.Class<? extends C.IE1>'">getClass</error>();
|
||||
Class<? extends I> clazz3 = e.<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends C.E>>', required: 'java.lang.Class<? extends C.I>'">getClass</error>();
|
||||
}
|
||||
|
||||
try { f(); }
|
||||
|
||||
@@ -43,7 +43,7 @@ class C {
|
||||
void m2() throws Exception {
|
||||
try (<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.AutoCloseable'">Object r = new MyResource()</error>) { }
|
||||
|
||||
try (<error descr="Incompatible types. Found: 'java.lang.String', required: 'java.lang.AutoCloseable'">AutoCloseable r = "resource"</error>) { }
|
||||
try (AutoCloseable r = <error descr="Incompatible types. Found: 'java.lang.String', required: 'java.lang.AutoCloseable'">"resource"</error>) { }
|
||||
}
|
||||
|
||||
void m3(int p) throws Exception {
|
||||
|
||||
@@ -34,7 +34,7 @@ class Test {
|
||||
asList((ArrayList<String>[])null);
|
||||
|
||||
//overload should be chosen before target type is known -> inference failure
|
||||
<error descr="Incompatible types. Found: 'java.util.List<java.util.ArrayList<java.lang.String>>', required: 'java.util.List<java.util.ArrayList<java.lang.String>[]>'">List<ArrayList<String>[]> arraysList = asList(arrayOfStrings);</error>
|
||||
List<ArrayList<String>[]> arraysList = <error descr="Incompatible types. Found: 'java.util.List<java.util.ArrayList<java.lang.String>>', required: 'java.util.List<java.util.ArrayList<java.lang.String>[]>'">asList</error>(arrayOfStrings);
|
||||
System.out.println(arraysList);
|
||||
|
||||
asListSuppressed(new ArrayList<String>());
|
||||
|
||||
@@ -19,12 +19,12 @@ class X {
|
||||
}
|
||||
|
||||
void wrongType(String foo) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.StringTemplate', required: 'java.lang.String'">String s = StringTemplate.RAW."""
|
||||
String s = <error descr="Incompatible types. Found: 'java.lang.StringTemplate', required: 'java.lang.String'">StringTemplate.RAW."""
|
||||
this: \{foo}
|
||||
""";</error>
|
||||
|
||||
var x = (java.io.Serializable & StringTemplate.Processor<String, RuntimeException>)null;
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'java.util.ArrayList'">java.util.ArrayList v = x."asdf";</error>
|
||||
java.util.ArrayList v = <error descr="Incompatible types. Found: 'java.lang.String', required: 'java.util.ArrayList'">x."asdf";</error>
|
||||
String t = x."reticulation";
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ class X {
|
||||
public static void testCovariant() {
|
||||
Covariant proc = new Covariant();
|
||||
// As of Java 21, covariant processors are not supported
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.Integer'">Integer i = proc."hello";</error>
|
||||
Integer i = <error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.Integer'">proc."hello";</error>
|
||||
}
|
||||
|
||||
static class CovariantException implements StringTemplate.Processor<Integer, Exception> {
|
||||
@@ -149,7 +149,7 @@ class X {
|
||||
}
|
||||
|
||||
void myTest() {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.Integer'">Integer x = new IntegerProcessor()."hello";</error>
|
||||
Integer x = <error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.Integer'">new IntegerProcessor()."hello";</error>
|
||||
System.out.println(x);
|
||||
}
|
||||
}
|
||||
@@ -19,12 +19,12 @@ class X {
|
||||
}
|
||||
|
||||
void wrongType(String foo) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.StringTemplate', required: 'java.lang.String'">String s = StringTemplate.RAW."""
|
||||
String s = <error descr="Incompatible types. Found: 'java.lang.StringTemplate', required: 'java.lang.String'">StringTemplate.RAW."""
|
||||
this: \{foo}
|
||||
""";</error>
|
||||
|
||||
var x = (java.io.Serializable & StringTemplate.Processor<String, RuntimeException>)null;
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'java.util.ArrayList'">java.util.ArrayList v = x."asdf";</error>
|
||||
java.util.ArrayList v = <error descr="Incompatible types. Found: 'java.lang.String', required: 'java.util.ArrayList'">x."asdf";</error>
|
||||
String t = x."reticulation";
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ public class UnnamedVariables {
|
||||
}
|
||||
|
||||
int _ = 123;
|
||||
<error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">String s = _;</error>
|
||||
String s = <error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">_</error>;
|
||||
|
||||
void testLocal() {
|
||||
int _ = 10;
|
||||
|
||||
@@ -6,7 +6,7 @@ public class UnnamedVariables {
|
||||
}
|
||||
|
||||
int _ = 123;
|
||||
<error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">String s = _;</error>
|
||||
String s = <error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">_</error>;
|
||||
|
||||
void testLambda() {
|
||||
Consumer<String> consumer = <error descr="Use of '_' as a lambda parameter name is not allowed">_</error> -> System.out.println("Hello");
|
||||
|
||||
@@ -13,7 +13,7 @@ class Main {
|
||||
var x = (<error descr="Cannot infer type for 'x', it is used in its own variable initializer">x</error> = 1) + 1;
|
||||
var y = new Object[] {<error descr="Cannot infer type for 'y', it is used in its own variable initializer">y</error> = null};
|
||||
var z = baz(<error descr="Cannot infer type for 'z', it is used in its own variable initializer">z</error> = 1);
|
||||
var zz = <error descr="Variable 'zz' might not have been initialized">zz</error>;
|
||||
var zz = <error descr="Cannot infer type for 'zz', it is used in its own variable initializer">zz</error>;
|
||||
zz.hashCode();
|
||||
System.out.println(zz.zz);
|
||||
var v =<error descr="Expression expected"> </error>;
|
||||
|
||||
@@ -41,7 +41,7 @@ class Main {
|
||||
|
||||
A a = y.get();
|
||||
B b = y.get();
|
||||
<error descr="Incompatible types. Found: 'capture<? extends B>', required: 'C'">C c = y.get();</error>
|
||||
C c = y.<error descr="Incompatible types. Found: 'capture<? extends B>', required: 'C'">get</error>();
|
||||
}
|
||||
|
||||
<M> M[] m(M m) {
|
||||
|
||||
@@ -3,10 +3,10 @@ import lombok.val;
|
||||
import java.util.*;
|
||||
|
||||
class Test {
|
||||
<error descr="Incompatible types. Found: 'int', required: 'lombok.val'">val field = 0;</error>
|
||||
val field = <error descr="Incompatible types. Found: 'int', required: 'lombok.val'">0;</error>
|
||||
|
||||
void method(val param) {
|
||||
<error descr="Incompatible types. Found: 'lombok.val', required: 'int'">int p = param;</error>
|
||||
int p = <error descr="Incompatible types. Found: 'lombok.val', required: 'int'">param</error>;
|
||||
|
||||
val i = 0;
|
||||
int j = i + 1;
|
||||
@@ -15,7 +15,7 @@ class Test {
|
||||
Object o = a.get(0);
|
||||
|
||||
val b = new ArrayList<>();
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">String s = b.get(0);</error>
|
||||
String s = b.<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">get</error>(0);
|
||||
o = b.get(0);
|
||||
|
||||
for (val v : a) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import java.util.*;
|
||||
class Bug {
|
||||
void foo(Double d) {
|
||||
<error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<capture<? extends java.lang.Object>>>', required: 'java.util.List<java.lang.Class<?>>'">List<Class<?>> list = Arrays.asList(d == null ? Object.class : d.getClass());</error>
|
||||
List<Class<?>> list = Arrays.<error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<capture<? extends java.lang.Object>>>', required: 'java.util.List<java.lang.Class<?>>'">asList</error>(d == null ? Object.class : d.getClass());
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,7 @@ import java.util.*;
|
||||
|
||||
class Test {
|
||||
public static void bar() {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.Iterator>>', required: 'java.lang.Class<? extends java.util.Iterator<?>>'">Class<? extends Iterator<?>> c = foo();</error>
|
||||
Class<? extends Iterator<?>> c = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.Iterator>>', required: 'java.lang.Class<? extends java.util.Iterator<?>>'">foo</error>();
|
||||
}
|
||||
|
||||
public static Class<? extends Iterator> foo() {
|
||||
|
||||
@@ -14,7 +14,7 @@ public class CastUnboxingConversionWithWidening {
|
||||
}
|
||||
|
||||
static <T extends Double> int boundDoubleToIntegerPrimitive(T i) {
|
||||
<error descr="Incompatible types. Found: 'T', required: 'int'">int i1 = i;</error> //report
|
||||
int i1 = <error descr="Incompatible types. Found: 'T', required: 'int'">i</error>; //report
|
||||
return i1;
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ class a {
|
||||
for (double i:db) {}
|
||||
for (<error descr="Incompatible types. Found: 'int', required: 'double'">int i</error>:db) {
|
||||
// highlight header event if body has problems
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">int di = "";</error>
|
||||
int di = <error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">"";</error>
|
||||
}
|
||||
|
||||
java.util.List list = null;
|
||||
|
||||
@@ -7,6 +7,6 @@ abstract class Test {
|
||||
abstract <T> T test(Serializable type);
|
||||
|
||||
private void call(){
|
||||
<error descr="Incompatible types. Found: 'java.lang.String[]', required: 'java.lang.String'">String s = test(String[].class);</error>
|
||||
String s = <error descr="Incompatible types. Found: 'java.lang.String[]', required: 'java.lang.String'">test</error>(String[].class);
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import java.util.Map;
|
||||
class Test {
|
||||
|
||||
public static void main(String[] args) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Map<java.lang.Integer,java.lang.Comparable>', required: 'java.util.Map<java.lang.Integer,java.lang.Object>'">Map<Integer, Object> map = make();</error>
|
||||
Map<Integer, Object> map = <error descr="Incompatible types. Found: 'java.util.Map<java.lang.Integer,java.lang.Comparable>', required: 'java.util.Map<java.lang.Integer,java.lang.Object>'">make</error>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
class Test {
|
||||
{
|
||||
final <error descr="Incompatible types. Found: 'java.lang.Object', required: 'MyResult'">MyResult hello = parseXML(new Parser());</error>
|
||||
final MyResult hello = <error descr="Incompatible types. Found: 'java.lang.Object', required: 'MyResult'">parseXML</error>(new Parser());
|
||||
}
|
||||
public <R, P extends AbstractParser & Result<R>> R parseXML(P parser) {
|
||||
R result = null;
|
||||
|
||||
@@ -6,7 +6,7 @@ class Test {
|
||||
assertThat(<error descr="'assertThat(Test.Matcher<? super java.util.Set>, java.util.Set)' in 'Test' cannot be applied to '(Test.Matcher<java.lang.Iterable<java.lang.String>>, java.util.Set)'">matcher</error>, foo);
|
||||
|
||||
Matcher<Iterable<String>> b = null;
|
||||
<error descr="Incompatible types. Found: 'Test.Matcher<java.lang.Iterable<java.lang.String>>', required: 'Test.Matcher<? super java.util.Set>'">Matcher<? super Set> a = b;</error>
|
||||
Matcher<? super Set> a = <error descr="Incompatible types. Found: 'Test.Matcher<java.lang.Iterable<java.lang.String>>', required: 'Test.Matcher<? super java.util.Set>'">b</error>;
|
||||
}
|
||||
|
||||
public static <T> void assertThat(Matcher<? super T> matcher, T actual) {}
|
||||
|
||||
@@ -6,6 +6,6 @@ class MyClass<T>
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
<error descr="Incompatible types. Found: 'MyClass<java.util.List>', required: 'MyClass<java.util.List<java.lang.String>>'">MyClass<List<String>> myClass = new MyClass<>(List.class);</error>
|
||||
MyClass<List<String>> myClass = new <error descr="Incompatible types. Found: 'MyClass<java.util.List>', required: 'MyClass<java.util.List<java.lang.String>>'">MyClass<></error>(List.class);
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ class GenericsError {
|
||||
|
||||
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>
|
||||
List<List<?>> result = <error descr="Incompatible types. Found: 'java.util.List<java.util.List<capture<?>>>', required: 'java.util.List<java.util.List<?>>'">method</error>(list);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ class A1<T> {}
|
||||
class B1<T extends A1<? super A1<? super T>>>{
|
||||
{
|
||||
T a = null;
|
||||
<error descr="Incompatible types. Found: 'T', required: 'A1<? super T>'">A1<? super T> b = a;</error>
|
||||
A1<? super T> b = <error descr="Incompatible types. Found: 'T', required: 'A1<? super T>'">a</error>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,6 @@ interface IB{
|
||||
}
|
||||
class C {
|
||||
<T extends IA & IB> void bar(T x, A<String[]> y){
|
||||
<error descr="Incompatible types. Found: 'void', required: 'int'">int z = x.foo(y);</error>
|
||||
int z = x.<error descr="Incompatible types. Found: 'void', required: 'int'">foo</error>(y);
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,6 @@ import java.util.*;
|
||||
class Test {
|
||||
{
|
||||
Object obj = new Object();
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<java.lang.Class<capture<? extends java.lang.Object>>>', required: 'java.util.Set<java.lang.Class<?>>'">Set<Class<?>> types = Collections.singleton(obj.getClass());</error>
|
||||
Set<Class<?>> types = Collections.<error descr="Incompatible types. Found: 'java.util.Set<java.lang.Class<capture<? extends java.lang.Object>>>', required: 'java.util.Set<java.lang.Class<?>>'">singleton</error>(obj.getClass());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ abstract class A<T, S extends T>
|
||||
{
|
||||
abstract S bar();
|
||||
void foo(A<Runnable[], ? extends Cloneable[]> a){
|
||||
<error descr="Incompatible types. Found: 'capture<? extends java.lang.Cloneable[]>', required: 'java.lang.Runnable[]'">Runnable[] x = a.bar();</error>
|
||||
Runnable[] x = a.<error descr="Incompatible types. Found: 'capture<? extends java.lang.Cloneable[]>', required: 'java.lang.Runnable[]'">bar</error>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ abstract class AC<T, S>
|
||||
{
|
||||
abstract S bar();
|
||||
void foo(AC<Runnable[], ? extends Cloneable[]> a){
|
||||
<error descr="Incompatible types. Found: 'capture<? extends java.lang.Cloneable[]>', required: 'java.lang.Runnable[]'">Runnable[] x = a.bar();</error>
|
||||
Runnable[] x = a.<error descr="Incompatible types. Found: 'capture<? extends java.lang.Cloneable[]>', required: 'java.lang.Runnable[]'">bar</error>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,27 +23,27 @@ class Bug1<T extends Number> {
|
||||
}
|
||||
|
||||
void bug4(Set<Parametrized<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug5(Set<Parametrized<? extends Integer>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug6(Set<Parametrized<? super Number>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Number>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Number>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug7(Set<Parametrized<? super Integer>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug8(Set<Parametrized<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug9(Set<Parametrized<<error descr="Type parameter '? super Object' is not within its bound; should extend 'java.lang.Number'">? super Object</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Object>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Object>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,32 +2,32 @@ import java.util.List;
|
||||
|
||||
class IDEA80386 {
|
||||
void foo(Class<List> listClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<java.util.List>', required: 'java.lang.Class<? extends java.util.List<?>>'">Class<? extends List<?>> cls = listClass;</error>
|
||||
Class<? extends List<?>> cls = <error descr="Incompatible types. Found: 'java.lang.Class<java.util.List>', required: 'java.lang.Class<? extends java.util.List<?>>'">listClass</error>;
|
||||
Class < ?extends List > cls1 = listClass;
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<java.util.List>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">Class<? extends List<? extends List<?>>> cls2 = listClass;</error>
|
||||
Class<? extends List<? extends List<?>>> cls2 = <error descr="Incompatible types. Found: 'java.lang.Class<java.util.List>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">listClass</error>;
|
||||
Class<? super List<?>> clsS = listClass;
|
||||
Class<? super List> clsS1 = listClass;
|
||||
}
|
||||
|
||||
void fooE(Class<? extends List> listClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? extends java.util.List<?>>'">Class<? extends List<?>> cls = listClass;</error>
|
||||
Class<? extends List<?>> cls = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? extends java.util.List<?>>'">listClass</error>;
|
||||
Class<? extends List> cls1 = listClass;
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">Class<? extends List<? extends List<?>>> cls2 = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? super java.util.List<?>>'">Class<? super List<?>> clsS = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? super java.util.List>'">Class<? super List> clsS1 = listClass;</error>
|
||||
Class<? extends List<? extends List<?>>> cls2 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">listClass</error>;
|
||||
Class<? super List<?>> clsS = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? super java.util.List<?>>'">listClass</error>;
|
||||
Class<? super List> clsS1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? super java.util.List>'">listClass</error>;
|
||||
}
|
||||
|
||||
void fooS(Class<? super List> listClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? super java.util.List>>', required: 'java.lang.Class<? extends java.util.List<?>>'">Class<? extends List<?>> cls1 = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? super java.util.List>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">Class<? extends List<? extends List<?>>> cls2 = listClass;</error>
|
||||
Class<? extends List<?>> cls1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? super java.util.List>>', required: 'java.lang.Class<? extends java.util.List<?>>'">listClass</error>;
|
||||
Class<? extends List<? extends List<?>>> cls2 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? super java.util.List>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">listClass</error>;
|
||||
Class<? super List<?>> clsS = listClass;
|
||||
Class<? super List> clsS1 = listClass;
|
||||
}
|
||||
|
||||
void fooU(Class<?> listClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? extends java.util.List<?>>'">Class<? extends List<?>> cls1 = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">Class<? extends List<? extends List<?>>> cls2 = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? super java.util.List<?>>'">Class<? super List<?>> clsS = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? super java.util.List>'">Class<? super List> clsS1 = listClass;</error>
|
||||
Class<? extends List<?>> cls1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? extends java.util.List<?>>'">listClass</error>;
|
||||
Class<? extends List<? extends List<?>>> cls2 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">listClass</error>;
|
||||
Class<? super List<?>> clsS = <error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? super java.util.List<?>>'">listClass</error>;
|
||||
Class<? super List> clsS1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? super java.util.List>'">listClass</error>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,6 @@ class Main2 {
|
||||
List r1 = foo("", obj);
|
||||
List<T> r2 = foo("", obj);
|
||||
List<?> r3 = foo("", obj);
|
||||
<error descr="Incompatible types. Found: 'java.util.List<java.io.Serializable>', required: 'java.util.List<java.lang.Object>'">List<Object> r4 = foo("", obj);</error>
|
||||
List<Object> r4 = <error descr="Incompatible types. Found: 'java.util.List<java.io.Serializable>', required: 'java.util.List<java.lang.Object>'">foo</error>("", obj);
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ class Test {
|
||||
}
|
||||
|
||||
void foo() {
|
||||
<error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<? extends java.io.Serializable & java.lang.Comparable<? extends java.io.Serializable & java.lang.Comparable<?>>>>', required: 'java.util.List<java.lang.Class<? extends java.io.Serializable>>'">List<Class<? extends Serializable>> l = <warning descr="Unchecked generics array creation for varargs parameter">this.asList</warning>(String.class, Integer.class);</error>
|
||||
List<Class<? extends Serializable>> l = <warning descr="Unchecked generics array creation for varargs parameter">this.<error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<? extends java.io.Serializable & java.lang.Comparable<? extends java.io.Serializable & java.lang.Comparable<?>>>>', required: 'java.util.List<java.lang.Class<? extends java.io.Serializable>>'">asList</error></warning>(String.class, Integer.class);
|
||||
l.size();
|
||||
List<? extends Object> objects = this.asList(new String(), new Integer(0));
|
||||
objects.size();
|
||||
@@ -146,9 +146,9 @@ class IDEADEV25515 {
|
||||
}
|
||||
|
||||
public static final
|
||||
<error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<? extends java.io.Serializable & java.lang.Comparable<? extends java.io.Serializable & java.lang.Comparable<?>>>>', required: 'java.util.List<java.lang.Class<? extends java.io.Serializable>>'">List<Class<? extends Serializable>> SIMPLE_TYPES =
|
||||
<warning descr="Unchecked generics array creation for varargs parameter">asList</warning>(String.class, Integer.class ,Long.class, Double.class, /*Date.class,*/
|
||||
Boolean.class, Boolean.TYPE /*,String[].class */ /*,BigDecimal.class*/);</error>
|
||||
List<Class<? extends Serializable>> SIMPLE_TYPES =
|
||||
<error descr="Incompatible types. Found: 'java.util.List<java.lang.Class<? extends java.io.Serializable & java.lang.Comparable<? extends java.io.Serializable & java.lang.Comparable<?>>>>', required: 'java.util.List<java.lang.Class<? extends java.io.Serializable>>'"><warning descr="Unchecked generics array creation for varargs parameter">asList</warning></error>(String.class, Integer.class ,Long.class, Double.class, /*Date.class,*/
|
||||
Boolean.class, Boolean.TYPE /*,String[].class */ /*,BigDecimal.class*/);
|
||||
|
||||
|
||||
public static final List<Class<? extends Serializable>> SIMPLE_TYPES_INFERRED =
|
||||
@@ -160,7 +160,7 @@ Boolean.class, Boolean.TYPE /*,String[].class */ /*,BigDecimal.class*/);</error>
|
||||
///////////////////////
|
||||
class Axx {
|
||||
<T extends Runnable> T a() {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Runnable', required: 'java.lang.String'">String s = a();</error>
|
||||
String s = <error descr="Incompatible types. Found: 'java.lang.Runnable', required: 'java.lang.String'">a</error>();
|
||||
s.hashCode();
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
List x = null;
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">String s = foo(x).get(0);</error>
|
||||
String s = foo(x).<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">get</error>(0);
|
||||
foo(x).iterator().next().<error descr="Cannot resolve method 'toLowerCase' in 'Object'">toLowerCase</error>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class Bound extends Generic<String>{
|
||||
class Generic2<T1,T2> {
|
||||
class A {}
|
||||
class B {}
|
||||
private <error descr="Incompatible types. Found: 'Generic2<java.lang.String,Generic2.B>', required: 'Generic2<java.lang.String,Generic2.A>'">Generic2<String, A> map = new Generic2<String,B>();</error>
|
||||
private Generic2<String, A> map = new <error descr="Incompatible types. Found: 'Generic2<java.lang.String,Generic2.B>', required: 'Generic2<java.lang.String,Generic2.A>'">Generic2<String,B></error>();
|
||||
{
|
||||
<error descr="Incompatible types. Found: 'Generic2<java.lang.String,java.lang.String>', required: 'Generic2<java.lang.String,Generic2.A>'">map = new Generic2<String,String>()</error>;
|
||||
map = new Generic2<String,A>();
|
||||
@@ -99,7 +99,7 @@ class testDup<T, <error descr="Duplicate type parameter: 'T'">T</error>> { // CA
|
||||
|
||||
class aaaa {
|
||||
{
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<java.lang.String>', required: 'java.lang.Class<? super java.lang.Object>'">Class<? super Object> c = String.class;</error>
|
||||
Class<? super Object> c = <error descr="Incompatible types. Found: 'java.lang.Class<java.lang.String>', required: 'java.lang.Class<? super java.lang.Object>'">String.class;</error>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,6 @@ interface B {}
|
||||
}
|
||||
|
||||
void bar (boolean a, A a1, B b1){
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'T'">T t = a ? a1 : b1;</error>
|
||||
T t = <error descr="Incompatible types. Found: 'java.lang.Object', required: 'T'">a ? a1 : b1;</error>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ interface B<T extends A<?>> { }
|
||||
|
||||
class C {
|
||||
void foo(A<?> x){
|
||||
<error descr="Incompatible types. Found: 'A<capture<?>>', required: 'A<? extends B<? extends A<?>>>'">A<? extends B<? extends A<?>>> y = x;</error>
|
||||
A<? extends B<? extends A<?>>> y = <error descr="Incompatible types. Found: 'A<capture<?>>', required: 'A<? extends B<? extends A<?>>>'">x</error>;
|
||||
Object y1 = (A<? extends B<? extends A<?>>>) x;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ class Test<T > {
|
||||
|
||||
public void addListener(EventListener<? super T> listener) {
|
||||
EventListener<? extends Event> localListener = listener;
|
||||
<error descr="Incompatible types. Found: 'Test.EventListener<capture<? super T>>', required: 'Test.EventListener<? super Test.Event>'">EventListener<? super Event> localListener1 = listener;</error>
|
||||
EventListener<? super Event> localListener1 = <error descr="Incompatible types. Found: 'Test.EventListener<capture<? super T>>', required: 'Test.EventListener<? super Test.Event>'">listener</error>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,12 +33,12 @@ class VarianceTesting {
|
||||
<error descr="Incompatible types. Found: 'VarianceTesting', required: 'capture<? extends VarianceTesting>'">x.method()[0] = new VarianceTesting()</error>;
|
||||
<error descr="Incompatible types. Found: 'VarianceTesting[]', required: 'capture<? extends VarianceTesting>[]'">x.arrayField = new VarianceTesting[10]</error>;
|
||||
l1.addAll<error descr="'addAll(java.util.Collection<? extends capture<? extends VarianceTesting>>)' in 'java.util.List' cannot be applied to '(java.util.ArrayList<VarianceTesting>)'">(new ArrayList<VarianceTesting>())</error>;
|
||||
<error descr="Incompatible types. Found: 'java.util.ArrayList<java.lang.String>', required: 'java.util.List<? extends VarianceTesting>'">List<? extends VarianceTesting> l2 = new ArrayList<String>();</error>
|
||||
List<? extends VarianceTesting> l2 = new <error descr="Incompatible types. Found: 'java.util.ArrayList<java.lang.String>', required: 'java.util.List<? extends VarianceTesting>'">ArrayList<String></error>();
|
||||
List<? extends VarianceTesting> l3 = l2;
|
||||
VarianceTesting t = l1.get(0);
|
||||
l.add(new VarianceTesting());
|
||||
l.add(null);
|
||||
<error descr="Incompatible types. Found: 'capture<? super VarianceTesting>', required: 'VarianceTesting'">VarianceTesting t1 = l.get(0);</error>
|
||||
VarianceTesting t1 = l.<error descr="Incompatible types. Found: 'capture<? super VarianceTesting>', required: 'VarianceTesting'">get</error>(0);
|
||||
X<? extends VarianceTesting> x1 = null;
|
||||
x1.putAll(new ArrayList<VarianceTesting>());
|
||||
List<?> unknownlist = l;
|
||||
@@ -64,7 +64,7 @@ class SuperTester <U> {
|
||||
|
||||
class SCR40202 {
|
||||
void foo(Map<?, String> map) {
|
||||
for (<error descr="Incompatible types. Found: 'java.util.Iterator<java.util.Map.Entry<capture<?>,java.lang.String>>', required: 'java.util.Iterator<java.util.Map.Entry<?,java.lang.String>>'">Iterator<Map.Entry<?, String>> it = map.entrySet().iterator();</error> it.hasNext();) {
|
||||
for (Iterator<Map.Entry<?, String>> it = map.entrySet().<error descr="Incompatible types. Found: 'java.util.Iterator<java.util.Map.Entry<capture<?>,java.lang.String>>', required: 'java.util.Iterator<java.util.Map.Entry<?,java.lang.String>>'">iterator</error>(); it.hasNext();) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,20 +45,20 @@ class TestNonNarrowingConversion<T extends Z> {
|
||||
public T z = null;
|
||||
|
||||
public int a() {
|
||||
<error descr="Incompatible types. Found: 'TestNonNarrowingConversion<Z>', required: 'TestNonNarrowingConversion<T>'">TestNonNarrowingConversion<T> x = new TestNonNarrowingConversion<Z>(new Z());</error>
|
||||
TestNonNarrowingConversion<T> x = new <error descr="Incompatible types. Found: 'TestNonNarrowingConversion<Z>', required: 'TestNonNarrowingConversion<T>'">TestNonNarrowingConversion<Z></error>(new Z());
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
class TestRecursiveTypeParameter {
|
||||
static <<error descr="Cyclic inheritance involving 'T'"></error>T extends T> void test(T t) {
|
||||
<error descr="Incompatible types. Found: 'T', required: 'java.lang.String'">String x = t;</error>
|
||||
String x = <error descr="Incompatible types. Found: 'T', required: 'java.lang.String'">t</error>;
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'T'">t = x</error>;
|
||||
}
|
||||
|
||||
static <<error descr="Cyclic inheritance involving 'A'"></error>A extends B, B extends A> void test(A a, B b) {
|
||||
a = b;
|
||||
b = a;
|
||||
<error descr="Incompatible types. Found: 'A', required: 'java.lang.String'">String x = a;</error>
|
||||
String x = <error descr="Incompatible types. Found: 'A', required: 'java.lang.String'">a</error>;
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'A'">a = x</error>;
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@ class ThingUser <V> {
|
||||
|
||||
class SuperWildcardTest {
|
||||
static void method(List<?> list) {
|
||||
<error descr="Incompatible types. Found: 'java.util.List<capture<?>>', required: 'java.util.List<? super java.lang.String>'">List<? super String> l = list;</error>
|
||||
List<? super String> l = <error descr="Incompatible types. Found: 'java.util.List<capture<?>>', required: 'java.util.List<? super java.lang.String>'">list</error>;
|
||||
l.size();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@ class DiagramNode<T> {}
|
||||
class A {
|
||||
static void f(Main m, List<DiagramNode<?>> nodes){
|
||||
final Object data = m.get(nodes, new A());
|
||||
final <error descr="Incompatible types. Found: 'java.util.List<DiagramNode<?>>', required: 'java.util.List<DiagramNode>'">List<DiagramNode> n = nodes;</error>
|
||||
final List<DiagramNode> n = <error descr="Incompatible types. Found: 'java.util.List<DiagramNode<?>>', required: 'java.util.List<DiagramNode>'">nodes</error>;
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,6 @@ class RawTest<A> {
|
||||
}
|
||||
|
||||
void bar(RawTest x){
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">String a = x.<String>foo();</error>
|
||||
String a = x.<String><error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">foo</error>();
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,7 @@ import java.util.*;
|
||||
|
||||
class Test {
|
||||
public static void bar() {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.Iterator>>', required: 'java.lang.Class<? extends java.util.Iterator<?>>'">Class<? extends Iterator<?>> c = foo();</error>
|
||||
Class<? extends Iterator<?>> c = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.Iterator>>', required: 'java.lang.Class<? extends java.util.Iterator<?>>'">foo</error>();
|
||||
}
|
||||
|
||||
public static Class<? extends Iterator> foo() {
|
||||
|
||||
@@ -7,7 +7,7 @@ class FooBar1 {
|
||||
Object y = (CharSequence & Serializable) x;
|
||||
Object y2 = (CharSequence & <error descr="Interface expected here">Integer</error>) x;
|
||||
Object y3 = (Integer & CharSequence) x;
|
||||
<error descr="Incompatible types. Found: 'java.lang.CharSequence & java.io.Serializable', required: 'int'">int y1 = (CharSequence & Serializable) x;</error>
|
||||
int y1 = <error descr="Incompatible types. Found: 'java.lang.CharSequence & java.io.Serializable', required: 'int'">(CharSequence & Serializable) x;</error>
|
||||
Object z0 = (Cloneable & <error descr="Unexpected type: class is expected">Runnable[]</error>) x;
|
||||
Object z1 = (Cloneable & <error descr="Repeated interface">Cloneable</error>) x;
|
||||
Object z2 = <error descr="java.util.Collection cannot be inherited with different arguments: String and Integer">(List<String> & Set<Integer>) x</error>;
|
||||
|
||||
@@ -9,9 +9,9 @@ abstract class ProcedureService {
|
||||
abstract <C extends Command<Result>> Class<? extends Procedure<Command<Result>>> getProcedure(Class<C> cmd);
|
||||
|
||||
public <C extends Command<Result>> void execute(Class<? extends Command> aClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Procedure<Command<Result>>>>', required: 'java.lang.Class<Procedure<Command<Result>>>'">Class<Procedure<Command<Result>>> procedureClass = getProcedure(aClass);</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Command>>', required: 'java.lang.Class<Command>'">Class<Command> c = aClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Command>>', required: 'java.lang.Class<C>'">Class<C> c1 = aClass;</error>
|
||||
Class<Procedure<Command<Result>>> procedureClass = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Procedure<Command<Result>>>>', required: 'java.lang.Class<Procedure<Command<Result>>>'">getProcedure</error>(aClass);
|
||||
Class<Command> c = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Command>>', required: 'java.lang.Class<Command>'">aClass</error>;
|
||||
Class<C> c1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends Command>>', required: 'java.lang.Class<C>'">aClass</error>;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ class A1<T> {}
|
||||
class B1<T extends A1<? super A1<? super T>>>{
|
||||
{
|
||||
T a = null;
|
||||
<error descr="Incompatible types. Found: 'T', required: 'A1<? super T>'">A1<? super T> b = a;</error>
|
||||
A1<? super T> b = <error descr="Incompatible types. Found: 'T', required: 'A1<? super T>'">a</error>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ interface IB{
|
||||
<T> int foo(A<? extends T> x);
|
||||
}
|
||||
class C {
|
||||
<<error descr="'foo(A<? extends T>)' in 'IB' clashes with 'foo(A<? extends T[]>)' in 'IA'; both methods have same erasure, yet neither overrides the other"></error><error descr="'foo(A<? extends T>)' in 'IB' clashes with 'foo(A<? extends T[]>)' in 'IA'; both methods have same erasure, yet neither overrides the other"></error>T extends IA & IB> void bar(T x, A<String[]> y){
|
||||
<error descr="Incompatible types. Found: 'void', required: 'int'">int z = x.foo(y);</error>
|
||||
<<error descr="'foo(A<? extends T>)' in 'IB' clashes with 'foo(A<? extends T[]>)' in 'IA'; both methods have same erasure, yet neither overrides the other"></error>T extends IA & IB> void bar(T x, A<String[]> y){
|
||||
int z = x.<error descr="Incompatible types. Found: 'void', required: 'int'">foo</error>(y);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
class C<T,S> {
|
||||
class D extends C<D,D> {}
|
||||
<T> T foo(){
|
||||
<error descr="Incompatible types. Found: 'C.D.D.D', required: 'C.D'">D x = this.<D.D.D>foo();</error>
|
||||
D x = this.<D.D.D><error descr="Incompatible types. Found: 'C.D.D.D', required: 'C.D'">foo</error>();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -23,27 +23,27 @@ class Bug1<T extends Number> {
|
||||
}
|
||||
|
||||
void bug4(Set<Parametrized<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug5(Set<Parametrized<? extends Integer>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug6(Set<Parametrized<? super Number>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Number>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Number>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug7(Set<Parametrized<? super Integer>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug8(Set<Parametrized<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
|
||||
void bug9(Set<Parametrized<<error descr="Type parameter '? super Object' is not within its bound; should extend 'java.lang.Number'">? super Object</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Object>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
Set<Parametrized<?>> items = <error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Object>>', required: 'java.util.Set<Parametrized<?>>'">parametrizeds</error>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,32 +2,32 @@ import java.util.List;
|
||||
|
||||
class IDEA80386 {
|
||||
void foo(Class<List> listClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<java.util.List>', required: 'java.lang.Class<? extends java.util.List<?>>'">Class<? extends List<?>> cls = listClass;</error>
|
||||
Class<? extends List<?>> cls = <error descr="Incompatible types. Found: 'java.lang.Class<java.util.List>', required: 'java.lang.Class<? extends java.util.List<?>>'">listClass</error>;
|
||||
Class < ?extends List > cls1 = listClass;
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<java.util.List>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">Class<? extends List<? extends List<?>>> cls2 = listClass;</error>
|
||||
Class<? extends List<? extends List<?>>> cls2 = <error descr="Incompatible types. Found: 'java.lang.Class<java.util.List>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">listClass</error>;
|
||||
Class<? super List<?>> clsS = listClass;
|
||||
Class<? super List> clsS1 = listClass;
|
||||
}
|
||||
|
||||
void fooE(Class<? extends List> listClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? extends java.util.List<?>>'">Class<? extends List<?>> cls = listClass;</error>
|
||||
Class<? extends List<?>> cls = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? extends java.util.List<?>>'">listClass</error>;
|
||||
Class<? extends List> cls1 = listClass;
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">Class<? extends List<? extends List<?>>> cls2 = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? super java.util.List<?>>'">Class<? super List<?>> clsS = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? super java.util.List>'">Class<? super List> clsS1 = listClass;</error>
|
||||
Class<? extends List<? extends List<?>>> cls2 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">listClass</error>;
|
||||
Class<? super List<?>> clsS = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? super java.util.List<?>>'">listClass</error>;
|
||||
Class<? super List> clsS1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? extends java.util.List>>', required: 'java.lang.Class<? super java.util.List>'">listClass</error>;
|
||||
}
|
||||
|
||||
void fooS(Class<? super List> listClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? super java.util.List>>', required: 'java.lang.Class<? extends java.util.List<?>>'">Class<? extends List<?>> cls1 = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<? super java.util.List>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">Class<? extends List<? extends List<?>>> cls2 = listClass;</error>
|
||||
Class<? extends List<?>> cls1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? super java.util.List>>', required: 'java.lang.Class<? extends java.util.List<?>>'">listClass</error>;
|
||||
Class<? extends List<? extends List<?>>> cls2 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<? super java.util.List>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">listClass</error>;
|
||||
Class<? super List<?>> clsS = listClass;
|
||||
Class<? super List> clsS1 = listClass;
|
||||
}
|
||||
|
||||
void fooU(Class<?> listClass) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? extends java.util.List<?>>'">Class<? extends List<?>> cls1 = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">Class<? extends List<? extends List<?>>> cls2 = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? super java.util.List<?>>'">Class<? super List<?>> clsS = listClass;</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? super java.util.List>'">Class<? super List> clsS1 = listClass;</error>
|
||||
Class<? extends List<?>> cls1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? extends java.util.List<?>>'">listClass</error>;
|
||||
Class<? extends List<? extends List<?>>> cls2 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? extends java.util.List<? extends java.util.List<?>>>'">listClass</error>;
|
||||
Class<? super List<?>> clsS = <error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? super java.util.List<?>>'">listClass</error>;
|
||||
Class<? super List> clsS1 = <error descr="Incompatible types. Found: 'java.lang.Class<capture<?>>', required: 'java.lang.Class<? super java.util.List>'">listClass</error>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class Bound extends Generic<String>{
|
||||
class Generic2<T1,T2> {
|
||||
class A {}
|
||||
class B {}
|
||||
private <error descr="Incompatible types. Found: 'Generic2<java.lang.String,Generic2.B>', required: 'Generic2<java.lang.String,Generic2.A>'">Generic2<String, A> map = new Generic2<String,B>();</error>
|
||||
private Generic2<String, A> map = new <error descr="Incompatible types. Found: 'Generic2<java.lang.String,Generic2.B>', required: 'Generic2<java.lang.String,Generic2.A>'">Generic2<String,B></error>();
|
||||
{
|
||||
<error descr="Incompatible types. Found: 'Generic2<java.lang.String,java.lang.String>', required: 'Generic2<java.lang.String,Generic2.A>'">map = new Generic2<String,String>()</error>;
|
||||
map = new Generic2<String,A>();
|
||||
@@ -99,7 +99,7 @@ class testDup<T, <error descr="Duplicate type parameter: 'T'">T</error>> { // CA
|
||||
|
||||
class aaaa {
|
||||
{
|
||||
<error descr="Incompatible types. Found: 'java.lang.Class<java.lang.String>', required: 'java.lang.Class<? super java.lang.Object>'">Class<? super Object> c = String.class;</error>
|
||||
Class<? super Object> c = <error descr="Incompatible types. Found: 'java.lang.Class<java.lang.String>', required: 'java.lang.Class<? super java.lang.Object>'">String.class;</error>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ class GenericsTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">String v1 = new SomeClass().<String>getX();</error>
|
||||
String v1 = new SomeClass().<String><error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">getX</error>();
|
||||
String v2 = new SomeClass().f(); //
|
||||
|
||||
}
|
||||
|
||||
@@ -33,12 +33,12 @@ class VarianceTesting {
|
||||
<error descr="Incompatible types. Found: 'VarianceTesting', required: 'capture<? extends VarianceTesting>'">x.method()[0] = new VarianceTesting()</error>;
|
||||
<error descr="Incompatible types. Found: 'VarianceTesting[]', required: 'capture<? extends VarianceTesting>[]'">x.arrayField = new VarianceTesting[10]</error>;
|
||||
l1.addAll<error descr="'addAll(java.util.Collection<? extends capture<? extends VarianceTesting>>)' in 'java.util.List' cannot be applied to '(java.util.ArrayList<VarianceTesting>)'">(new ArrayList<VarianceTesting>())</error>;
|
||||
<error descr="Incompatible types. Found: 'java.util.ArrayList<java.lang.String>', required: 'java.util.List<? extends VarianceTesting>'">List<? extends VarianceTesting> l2 = new ArrayList<String>();</error>
|
||||
List<? extends VarianceTesting> l2 = new <error descr="Incompatible types. Found: 'java.util.ArrayList<java.lang.String>', required: 'java.util.List<? extends VarianceTesting>'">ArrayList<String></error>();
|
||||
List<? extends VarianceTesting> l3 = l2;
|
||||
VarianceTesting t = l1.get(0);
|
||||
l.add(new VarianceTesting());
|
||||
l.add(null);
|
||||
<error descr="Incompatible types. Found: 'capture<? super VarianceTesting>', required: 'VarianceTesting'">VarianceTesting t1 = l.get(0);</error>
|
||||
VarianceTesting t1 = l.<error descr="Incompatible types. Found: 'capture<? super VarianceTesting>', required: 'VarianceTesting'">get</error>(0);
|
||||
X<? extends VarianceTesting> x1 = null;
|
||||
x1.putAll(new ArrayList<VarianceTesting>());
|
||||
List<?> unknownlist = l;
|
||||
@@ -64,7 +64,7 @@ class SuperTester <U> {
|
||||
|
||||
class SCR40202 {
|
||||
void foo(Map<?, String> map) {
|
||||
for (<error descr="Incompatible types. Found: 'java.util.Iterator<java.util.Map.Entry<capture<?>,java.lang.String>>', required: 'java.util.Iterator<java.util.Map.Entry<?,java.lang.String>>'">Iterator<Map.Entry<?, String>> it = map.entrySet().iterator();</error> it.hasNext();) {
|
||||
for (Iterator<Map.Entry<?, String>> it = map.entrySet().<error descr="Incompatible types. Found: 'java.util.Iterator<java.util.Map.Entry<capture<?>,java.lang.String>>', required: 'java.util.Iterator<java.util.Map.Entry<?,java.lang.String>>'">iterator</error>(); it.hasNext();) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class TestNonNarrowingConversion<T extends Z> {
|
||||
public T z = null;
|
||||
|
||||
public int a() {
|
||||
<error descr="Incompatible types. Found: 'TestNonNarrowingConversion<Z>', required: 'TestNonNarrowingConversion<T>'">TestNonNarrowingConversion<T> x = new TestNonNarrowingConversion<Z>(new Z());</error>
|
||||
TestNonNarrowingConversion<T> x = new <error descr="Incompatible types. Found: 'TestNonNarrowingConversion<Z>', required: 'TestNonNarrowingConversion<T>'">TestNonNarrowingConversion<Z></error>(new Z());
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ class ThingUser <V> {
|
||||
|
||||
class SuperWildcardTest {
|
||||
static void method(List<?> list) {
|
||||
<error descr="Incompatible types. Found: 'java.util.List<capture<?>>', required: 'java.util.List<? super java.lang.String>'">List<? super String> l = list;</error>
|
||||
List<? super String> l = <error descr="Incompatible types. Found: 'java.util.List<capture<?>>', required: 'java.util.List<? super java.lang.String>'">list</error>;
|
||||
l.size();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@ class DiagramNode<T> {}
|
||||
class A {
|
||||
static void f(Main m, List<DiagramNode<?>> nodes){
|
||||
final Object data = m.get(nodes, new A());
|
||||
final <error descr="Incompatible types. Found: 'java.util.List<DiagramNode<?>>', required: 'java.util.List<DiagramNode>'">List<DiagramNode> n = nodes;</error>
|
||||
final List<DiagramNode> n = <error descr="Incompatible types. Found: 'java.util.List<DiagramNode<?>>', required: 'java.util.List<DiagramNode>'">nodes</error>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@ public class LombokDumbModeApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
<info descr="Not resolved until the project is fully loaded">Request</info> a = new <info descr="Not resolved until the project is fully loaded">Request</info>();
|
||||
<error descr="Incompatible types. Found: 'capture<?>', required: 'UserDao'">UserDao userDao = UserDao.builder()
|
||||
UserDao userDao = UserDao.builder()
|
||||
.id(1)
|
||||
.name("2")
|
||||
.surname("3")
|
||||
.email("4")
|
||||
.name("1")</error><error descr="';' expected">a</error>
|
||||
.<error descr="Incompatible types. Found: 'capture<?>', required: 'UserDao'">name</error>("1")<error descr="';' expected">a</error>
|
||||
.id(1)
|
||||
.<info descr="Not resolved until the project is fully loaded">build</info>();
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ public class Simple {
|
||||
|
||||
void testMethodRef() {
|
||||
Runnable r1 = <info descr="Not resolved until the project is fully loaded">UsedInMethodRef</info>::new;
|
||||
<error descr="Incompatible types. Found: '<method reference>', required: 'java.lang.Runnable'">Runnable r2 = <info descr="Not resolved until the project is fully loaded">UsedInMethodRef</info>[]::new;</error>
|
||||
Runnable r2 = <info descr="Not resolved until the project is fully loaded">UsedInMethodRef</info>[]::<error descr="Incompatible types. Found: '<method reference>', required: 'java.lang.Runnable'">new</error>;
|
||||
IntFunction<<info descr="Not resolved until the project is fully loaded">UsedInMethodRef</info>[]> r3 = <info descr="Not resolved until the project is fully loaded">UsedInMethodRef</info>[]::new;
|
||||
Runnable r4 = String::<error descr="Cannot resolve method 'blahblah'">blahblah</error>;
|
||||
Runnable r5 = <error descr="Non-static method cannot be referenced from a static context">String::getBytes</error>;
|
||||
@@ -52,14 +52,14 @@ public class Simple {
|
||||
}
|
||||
|
||||
void assign(<info descr="Not resolved until the project is fully loaded">Unknown</info> u) {
|
||||
<error descr="Incompatible types. Found: 'Unknown', required: 'java.lang.String'">String s = u;</error>
|
||||
String s = <error descr="Incompatible types. Found: 'Unknown', required: 'java.lang.String'">u</error>;
|
||||
Number n = u;
|
||||
<info descr="Not resolved until the project is fully loaded">Unknown2</info> u2 = u;
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'Unknown2'"><info descr="Not resolved until the project is fully loaded">Unknown2</info> u3 = s;</error>
|
||||
<info descr="Not resolved until the project is fully loaded">Unknown2</info> u3 = <error descr="Incompatible types. Found: 'java.lang.String', required: 'Unknown2'">s</error>;
|
||||
}
|
||||
|
||||
void knownTypes(String s) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'java.lang.Boolean'">Boolean b = s;</error>
|
||||
Boolean b = <error descr="Incompatible types. Found: 'java.lang.String', required: 'java.lang.Boolean'">s</error>;
|
||||
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public class Simple {
|
||||
<info descr="null">var</info> z = y.getSomethingCompletelyDifferent();
|
||||
z.getFromZ();
|
||||
|
||||
<info descr="null">var</info> t = <error descr="Variable 't' might not have been initialized">t</error>;
|
||||
<info descr="null">var</info> t = <error descr="Cannot infer type for 't', it is used in its own variable initializer">t</error>;
|
||||
}
|
||||
|
||||
void overloaded(int x) {}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
class Foo<Z> {
|
||||
void foo(final Bar baz) {
|
||||
Z z = z(new Bar<String>(baz));
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">Z z1 = z(new Bar<>(baz));</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">Z z2 = z(c(baz));</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">Z z3 = z(this.<String>c(baz));</error>
|
||||
Z z1 = <error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">z</error>(new Bar<>(baz));
|
||||
Z z2 = <error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">z</error>(c(baz));
|
||||
Z z3 = <error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">z</error>(this.<String>c(baz));
|
||||
}
|
||||
|
||||
<P> Bar<P> c(Bar<P> b) {
|
||||
|
||||
@@ -2,13 +2,13 @@ import java.util.List;
|
||||
|
||||
class Sample {
|
||||
<T extends List<K>, K extends List<T>> T foo(){
|
||||
<error descr="Incompatible types. Found: 'K', required: 'T'">T t = foo().get(0);</error>
|
||||
<error descr="Incompatible types. Found: 'K', required: 'K'">K k = foo().get(0);</error>
|
||||
T t = foo().<error descr="Incompatible types. Found: 'K', required: 'T'">get</error>(0);
|
||||
K k = foo().<error descr="Incompatible types. Found: 'K', required: 'K'">get</error>(0);
|
||||
|
||||
<error descr="Incompatible types. Found: 'T', required: 'T'">T t1 = foo().get(0).get(0);</error>
|
||||
T t1 = foo().get(0).<error descr="Incompatible types. Found: 'T', required: 'T'">get</error>(0);
|
||||
|
||||
String s = foo();
|
||||
<error descr="Incompatible types. Found: 'K', required: 'java.lang.String'">String s1 = foo().get(0);</error>
|
||||
String s1 = foo().<error descr="Incompatible types. Found: 'K', required: 'java.lang.String'">get</error>(0);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ class B<T> {
|
||||
}
|
||||
|
||||
void m(Iterable<? extends T> it, Predicate<? super T> p) {
|
||||
<error descr="Incompatible types. Found: 'B<capture<? extends T>>', required: 'B<T>'">B<T> B = from(it).bar(not(p));</error>
|
||||
B<T> B = from(it).<error descr="Incompatible types. Found: 'B<capture<? extends T>>', required: 'B<T>'">bar</error>(not(p));
|
||||
}
|
||||
|
||||
B<T> bar(Predicate<? super T> p) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.util.List;
|
||||
class Foo<Bazz> {
|
||||
|
||||
public void test(Foo parent) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Foo'">Foo foo = getElements(parent).get(0);</error>
|
||||
Foo foo = getElements(parent).<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Foo'">get</error>(0);
|
||||
}
|
||||
|
||||
public static <E extends Foo<E>> List<E> getElements(E parent) {
|
||||
|
||||
@@ -22,6 +22,6 @@ class AmbiguityRawGenerics {
|
||||
<Z> void foo(I3<Z> s) { }
|
||||
|
||||
void bar() {
|
||||
<error descr="Ambiguous method call: both 'AmbiguityRawGenerics.foo(I1)' and 'AmbiguityRawGenerics.foo(I2)' match">foo</error>(()-> { throw new RuntimeException(); });
|
||||
foo<error descr="Ambiguous method call: both 'AmbiguityRawGenerics.foo(I1)' and 'AmbiguityRawGenerics.foo(I2)' match">(()-> { throw new RuntimeException(); })</error>;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
public interface IDEA99969 {
|
||||
default IntStream distinct(Stream s) {
|
||||
return s.<error descr="Ambiguous method call: both 'Stream.map(Function)' and 'Stream.map(IntFunction)' match">map</error>(i -> <error descr="Inconvertible types; cannot cast '<lambda parameter>' to 'int'">(int) i</error>);
|
||||
return s.map<error descr="Ambiguous method call: both 'Stream.map(Function)' and 'Stream.map(IntFunction)' match">(i -> <error descr="Inconvertible types; cannot cast '<lambda parameter>' to 'int'">(int) i</error>)</error>;
|
||||
}
|
||||
}
|
||||
interface Stream<T> {
|
||||
|
||||
@@ -20,7 +20,7 @@ class Test {
|
||||
void m(IL lm, II s) { }
|
||||
|
||||
{
|
||||
<error descr="Ambiguous method call: both 'Test.m(II, IL)' and 'Test.m(IL, II)' match">m</error>(() -> 1, () ->1);
|
||||
m<error descr="Ambiguous method call: both 'Test.m(II, IL)' and 'Test.m(IL, II)' match">(() -> 1, () ->1)</error>;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,17 +42,17 @@ class Test {
|
||||
{
|
||||
mi (1);
|
||||
m2();
|
||||
<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">m2</error>(()->1);
|
||||
m2<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">(()->1)</error>;
|
||||
m2(()->1, ()->1);
|
||||
m2(()->1, ()->1, ()->1);
|
||||
|
||||
m2<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">(null, null, null)</error>;
|
||||
<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">m2</error>(()->1, null, null);
|
||||
<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">m2</error>(null, ()->1, null);
|
||||
<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">m2</error>(null, null, ()->1);
|
||||
<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">m2</error>(()->1, ()->1, null);
|
||||
<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">m2</error>(null, ()->1, ()->1);
|
||||
<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">m2</error>(()->1, null, ()->1);
|
||||
m2<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">(()->1, null, null)</error>;
|
||||
m2<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">(null, ()->1, null)</error>;
|
||||
m2<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">(null, null, ()->1)</error>;
|
||||
m2<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">(()->1, ()->1, null)</error>;
|
||||
m2<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">(null, ()->1, ()->1)</error>;
|
||||
m2<error descr="Ambiguous method call: both 'Test.m2(II, II...)' and 'Test.m2(IL...)' match">(()->1, null, ()->1)</error>;
|
||||
|
||||
m2(()->1L, null, null);
|
||||
m2(null, ()->1L, null);
|
||||
@@ -73,8 +73,8 @@ class Test {
|
||||
m3(() -> 1, () -> 1, () -> 1);
|
||||
|
||||
m3<error descr="Ambiguous method call: both 'Test.m3(II...)' and 'Test.m3(IL...)' match">(null, null)</error>;
|
||||
<error descr="Ambiguous method call: both 'Test.m3(II...)' and 'Test.m3(IL...)' match">m3</error>(() -> 1, null);
|
||||
<error descr="Ambiguous method call: both 'Test.m3(II...)' and 'Test.m3(IL...)' match">m3</error>(null, () -> 1);
|
||||
m3<error descr="Ambiguous method call: both 'Test.m3(II...)' and 'Test.m3(IL...)' match">(() -> 1, null)</error>;
|
||||
m3<error descr="Ambiguous method call: both 'Test.m3(II...)' and 'Test.m3(IL...)' match">(null, () -> 1)</error>;
|
||||
m3(() -> 1L, null);
|
||||
m3(null, () -> 1L);
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ public class Test<A, B extends Number> {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Inner<Number, Double> inn = new Inner<>();
|
||||
inn.<error descr="Ambiguous method call: both 'Inner.m8(IO<? extends Number>)' and 'Inner.m8(IN<? extends Double>)' match">m8</error>(<warning descr="Parameter 'p' is never used">p</warning> -> 1.0);
|
||||
new Test<Number, Integer>().<error descr="Ambiguous method call: both 'Test.foo(IO<? extends Number>)' and 'Test.foo(IN<? extends Integer>)' match">foo</error>(<warning descr="Parameter 'p' is never used">p</warning> -> 1.0);
|
||||
inn.m8<error descr="Ambiguous method call: both 'Inner.m8(IO<? extends Number>)' and 'Inner.m8(IN<? extends Double>)' match">(<warning descr="Parameter 'p' is never used">p</warning> -> 1.0)</error>;
|
||||
new Test<Number, Integer>().foo<error descr="Ambiguous method call: both 'Test.foo(IO<? extends Number>)' and 'Test.foo(IN<? extends Integer>)' match">(<warning descr="Parameter 'p' is never used">p</warning> -> 1.0)</error>;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ class Test {
|
||||
IntStream mi = sp.map(Inner::foo);
|
||||
Stream<Integer> mI = sp.map(Inner::fooBoxed);
|
||||
|
||||
IntStream li = sp.<error descr="Ambiguous method call: both 'Stream.map(Function<? super Inner, ?>)' and 'Stream.map(IntFunction<? super Inner>)' match">map</error>(inner->inner.<error descr="Cannot resolve method 'foo()'">foo</error>());
|
||||
Stream<Integer> lI = sp.<error descr="Ambiguous method call: both 'Stream.map(Function<? super Inner, ?>)' and 'Stream.map(IntFunction<? super Inner>)' match">map</error>(inner -> inner.<error descr="Cannot resolve method 'fooBoxed()'">fooBoxed</error>());
|
||||
IntStream li = sp.map<error descr="Ambiguous method call: both 'Stream.map(Function<? super Inner, ?>)' and 'Stream.map(IntFunction<? super Inner>)' match">(inner->inner.<error descr="Cannot resolve method 'foo()'">foo</error>())</error>;
|
||||
Stream<Integer> lI = sp.map<error descr="Ambiguous method call: both 'Stream.map(Function<? super Inner, ?>)' and 'Stream.map(IntFunction<? super Inner>)' match">(inner -> inner.<error descr="Cannot resolve method 'fooBoxed()'">fooBoxed</error>())</error>;
|
||||
}
|
||||
|
||||
interface Stream<T> {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
class IntStream {
|
||||
private void foo(IntStream s) {
|
||||
s.<error descr="Ambiguous method call: both 'IntStream.map(IntUnaryOperator)' and 'IntStream.map(ObjIntFunction<Object>)' match">map</error>(i -> 1 << i);
|
||||
s.<error descr="Ambiguous method call: both 'IntStream.map(IntUnaryOperator)' and 'IntStream.map(ObjIntFunction<Object>)' match">map</error>(<warning descr="Parameter 'i' is never used">i</warning> -> 1);
|
||||
s.<error descr="Ambiguous method call: both 'IntStream.map(IntUnaryOperator)' and 'IntStream.map(ObjIntFunction<Object>)' match">map</error>(i -> i);
|
||||
s.map<error descr="Ambiguous method call: both 'IntStream.map(IntUnaryOperator)' and 'IntStream.map(ObjIntFunction<Object>)' match">(i -> 1 << i)</error>;
|
||||
s.map<error descr="Ambiguous method call: both 'IntStream.map(IntUnaryOperator)' and 'IntStream.map(ObjIntFunction<Object>)' match">(<warning descr="Parameter 'i' is never used">i</warning> -> 1)</error>;
|
||||
s.map<error descr="Ambiguous method call: both 'IntStream.map(IntUnaryOperator)' and 'IntStream.map(ObjIntFunction<Object>)' match">(i -> i)</error>;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
@@ -22,7 +22,7 @@ class AmbiguityVarargs {
|
||||
|
||||
void test() {
|
||||
foo(()->{});
|
||||
<error descr="Ambiguous method call: both 'AmbiguityVarargs.foo(I1<String>)' and 'AmbiguityVarargs.foo(IV<String>)' match">foo</error>((a1) -> {});
|
||||
foo<error descr="Ambiguous method call: both 'AmbiguityVarargs.foo(I1<String>)' and 'AmbiguityVarargs.foo(IV<String>)' match">((a1) -> {})</error>;
|
||||
foo((a1, a2)->{});
|
||||
}
|
||||
}
|
||||
@@ -18,11 +18,11 @@ class InferenceFromArgs {
|
||||
bar(null, (k, v) -> v);
|
||||
bar(null, null);
|
||||
bar(b, (k, v) -> {return v;});
|
||||
bar(b, (k, v) -> {<error descr="Incompatible types. Found: 'java.lang.Integer', required: 'java.lang.String'">String i = k;</error> return v;});
|
||||
bar(b, (k, v) -> {String i = <error descr="Incompatible types. Found: 'java.lang.Integer', required: 'java.lang.String'">k</error>; return v;});
|
||||
bar(b, (k, v) -> {Integer i = k; return v;});
|
||||
|
||||
bazz((k, v) -> v);
|
||||
bazz((k, v) -> {<error descr="Incompatible types. Found: 'java.lang.Object', required: 'int'">int i = k;</error> return v;});
|
||||
bazz((k, v) -> {int i = <error descr="Incompatible types. Found: 'java.lang.Object', required: 'int'">k</error>; return v;});
|
||||
}
|
||||
|
||||
public static <T> SameArgsI<T> max() {
|
||||
|
||||
@@ -25,7 +25,7 @@ class ReturnTypeIncompatibility {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
<error descr="Ambiguous method call: both 'ReturnTypeIncompatibility.call(I1<Number>)' and 'ReturnTypeIncompatibility.call(I2<String>)' match">call</error>(i-> {return i;});
|
||||
call<error descr="Ambiguous method call: both 'ReturnTypeIncompatibility.call(I1<Number>)' and 'ReturnTypeIncompatibility.call(I2<String>)' match">(i-> {return i;})</error>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ class ReturnTypeCompatibility {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
<error descr="Ambiguous method call: both 'ReturnTypeCompatibility.call(I1<Number>)' and 'ReturnTypeCompatibility.call(I2<String>)' match">call</error>(i-> {return i;});
|
||||
call<error descr="Ambiguous method call: both 'ReturnTypeCompatibility.call(I1<Number>)' and 'ReturnTypeCompatibility.call(I2<String>)' match">(i-> {return i;})</error>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ class Test {
|
||||
}
|
||||
|
||||
void foo(Foo<String> as, final Foo<Character> ac) {
|
||||
boolean b1 = as.<error descr="Ambiguous method call: both 'Foo.forAll(I<String, Boolean>)' and 'Foo.forAll(II<String, String>)' match">forAll</error>(s -> ac.<error descr="Ambiguous method call: both 'Foo.forAll(I<Character, Boolean>)' and 'Foo.forAll(II<Character, String>)' match">forAll</error>(c -> false));
|
||||
String s1 = as.<error descr="Ambiguous method call: both 'Foo.forAll(I<String, Boolean>)' and 'Foo.forAll(II<String, String>)' match">forAll</error>(s -> ac.<error descr="Ambiguous method call: both 'Foo.forAll(I<Character, Boolean>)' and 'Foo.forAll(II<Character, String>)' match">forAll</error>(c -> ""));
|
||||
boolean b2 = as.<error descr="Ambiguous method call: both 'Foo.forAll(I<String, Boolean>)' and 'Foo.forAll(II<String, String>)' match">forAll</error>(s -> ac.<error descr="Ambiguous method call: both 'Foo.forAll(I<Character, Boolean>)' and 'Foo.forAll(II<Character, String>)' match">forAll</error>(c -> ""));
|
||||
boolean b1 = as.forAll<error descr="Ambiguous method call: both 'Foo.forAll(I<String, Boolean>)' and 'Foo.forAll(II<String, String>)' match">(s -> ac.forAll<error descr="Ambiguous method call: both 'Foo.forAll(I<Character, Boolean>)' and 'Foo.forAll(II<Character, String>)' match">(c -> false)</error>)</error>;
|
||||
String s1 = as.forAll<error descr="Ambiguous method call: both 'Foo.forAll(I<String, Boolean>)' and 'Foo.forAll(II<String, String>)' match">(s -> ac.forAll<error descr="Ambiguous method call: both 'Foo.forAll(I<Character, Boolean>)' and 'Foo.forAll(II<Character, String>)' match">(c -> "")</error>)</error>;
|
||||
boolean b2 = as.forAll<error descr="Ambiguous method call: both 'Foo.forAll(I<String, Boolean>)' and 'Foo.forAll(II<String, String>)' match">(s -> ac.forAll<error descr="Ambiguous method call: both 'Foo.forAll(I<Character, Boolean>)' and 'Foo.forAll(II<Character, String>)' match">(c -> "")</error>)</error>;
|
||||
String s2 = as.forAll2(s -> ac.forAll2(c -> <error descr="Bad return type in lambda expression: boolean cannot be converted to String">false</error>));
|
||||
boolean b3 = as.forAll((I<String, Boolean>)s -> ac.forAll((I<Character, Boolean>)c -> <error descr="Bad return type in lambda expression: String cannot be converted to Boolean">""</error>));
|
||||
String s3 = as.forAll((II<String, String>)s -> ac.forAll((II<Character, String>)c -> <error descr="Bad return type in lambda expression: boolean cannot be converted to String">false</error>));
|
||||
|
||||
@@ -31,7 +31,7 @@ class OnArrayTest {
|
||||
public static void main(String[] args) {
|
||||
Cln s = int[]::clone;
|
||||
IA a = int[]::new;
|
||||
<error descr="Incompatible types. Found: '<method reference>', required: 'OnArrayTest.I'">I i = int[]::new;</error>
|
||||
I i = int[]::<error descr="Incompatible types. Found: '<method reference>', required: 'OnArrayTest.I'">new</error>;
|
||||
Len<String> strLen = String[]::<error descr="Cannot resolve method 'length'">length</error>;
|
||||
ToStr<Integer> toStr = Integer[]::toString;
|
||||
|
||||
@@ -51,7 +51,7 @@ class IDEA106973 {
|
||||
|
||||
{
|
||||
Function<Integer, String[]> a = String[] :: new;
|
||||
<error descr="Incompatible types. Found: '<method reference>', required: 'IDEA106973.Function<java.lang.String,java.lang.String[]>'">Function<String, String[]> a1 = String[] :: new;</error>
|
||||
Function<String, String[]> a1 = String[] :: <error descr="Incompatible types. Found: '<method reference>', required: 'IDEA106973.Function<java.lang.String,java.lang.String[]>'">new</error>;
|
||||
Function<Short, String[]> a2 = String[] :: new;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ class Test {
|
||||
|
||||
void test() {
|
||||
call(() -> { });
|
||||
<error descr="Ambiguous method call: both 'Test.call(I1)' and 'Test.call(IVarargs)' match">call</error>(p1 -> { });
|
||||
call<error descr="Ambiguous method call: both 'Test.call(I1)' and 'Test.call(IVarargs)' match">(p1 -> { })</error>;
|
||||
call((p1, p2) -> {});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@ class Test {
|
||||
public static void call(I i) { }
|
||||
|
||||
public static void main(String[] args) {
|
||||
<error descr="Ambiguous method call: both 'Test.call(IStr)' and 'Test.call(I)' match">call</error>(()-> null);
|
||||
call<error descr="Ambiguous method call: both 'Test.call(IStr)' and 'Test.call(I)' match">(()-> null)</error>;
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ class MS {
|
||||
|
||||
void test(boolean cond) {
|
||||
m(cond ? () -> 26 : () -> 24);
|
||||
<error descr="Ambiguous method call: both 'MS.m(GetInt)' and 'MS.m(GetInteger)' match">m</error>(cond ? () -> 26 : () -> new Integer(42));
|
||||
m<error descr="Ambiguous method call: both 'MS.m(GetInt)' and 'MS.m(GetInteger)' match">(cond ? () -> 26 : () -> new Integer(42))</error>;
|
||||
m(cond ? () -> new Integer(26) : () -> new Integer(42));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ class Test {
|
||||
}
|
||||
|
||||
public void test() {
|
||||
<error descr="Ambiguous method call: both 'Test.foo(RunnableX)' and 'Test.foo(Callable<List<?>>)' match">foo</error>(()-> new ArrayList<Void>() );
|
||||
foo<error descr="Ambiguous method call: both 'Test.foo(RunnableX)' and 'Test.foo(Callable<List<?>>)' match">(()-> new ArrayList<Void>() )</error>;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import java.util.function.Supplier;
|
||||
class Test {
|
||||
|
||||
public static void main(String... args) {
|
||||
<error descr="Ambiguous method call: both 'Test.c(Supplier<Integer>, Supplier<Integer>)' and 'Test.c(Supplier<Integer>, Integer)' match">c</error>(() -> 3, () -> 10);
|
||||
c<error descr="Ambiguous method call: both 'Test.c(Supplier<Integer>, Supplier<Integer>)' and 'Test.c(Supplier<Integer>, Integer)' match">(() -> 3, () -> 10)</error>;
|
||||
}
|
||||
|
||||
public static <T> void c(Supplier<T> s1, Supplier<T> s2) {}
|
||||
|
||||
@@ -5,7 +5,7 @@ class OverloadCast {
|
||||
|
||||
public void runMe() {
|
||||
new OverloadCast<error descr="Cannot resolve constructor 'OverloadCast(<method reference>, <lambda expression>)'">(WhitespaceTokenizer::<error descr="Cannot resolve constructor 'WhitespaceTokenizer'">new</error>, src -> new LowerCaseFilter<error descr="'LowerCaseFilter(OverloadCast.TokenStream)' in 'OverloadCast.LowerCaseFilter' cannot be applied to '(<lambda parameter>)'">(src)</error>)</error>;
|
||||
<error descr="Ambiguous method call: both 'OverloadCast.overloadCast(Supplier<Tokenizer>, Function<TokenStream, TokenFilter>)' and 'OverloadCast.overloadCast(Function<TokenStream, TokenFilter>, Function<String, String>)' match">overloadCast</error>(WhitespaceTokenizer::<error descr="Cannot resolve constructor 'WhitespaceTokenizer'">new</error>, src -> new LowerCaseFilter<error descr="'LowerCaseFilter(OverloadCast.TokenStream)' in 'OverloadCast.LowerCaseFilter' cannot be applied to '(<lambda parameter>)'">(src)</error>);
|
||||
overloadCast<error descr="Ambiguous method call: both 'OverloadCast.overloadCast(Supplier<Tokenizer>, Function<TokenStream, TokenFilter>)' and 'OverloadCast.overloadCast(Function<TokenStream, TokenFilter>, Function<String, String>)' match">(WhitespaceTokenizer::<error descr="Cannot resolve constructor 'WhitespaceTokenizer'">new</error>, src -> new LowerCaseFilter<error descr="'LowerCaseFilter(OverloadCast.TokenStream)' in 'OverloadCast.LowerCaseFilter' cannot be applied to '(<lambda parameter>)'">(src)</error>)</error>;
|
||||
}
|
||||
|
||||
private OverloadCast(Supplier<Tokenizer> tokenizerFactory, Function<TokenStream, TokenFilter> filterCreator) {
|
||||
|
||||
@@ -14,7 +14,7 @@ class Test {
|
||||
void m1(ILong l, Object i) {}
|
||||
|
||||
void test() {
|
||||
<error descr="Ambiguous method call: both 'Test.m(IInt, Long)' and 'Test.m(ILong, Integer)' match">m</error>(() -> 1, null);
|
||||
m<error descr="Ambiguous method call: both 'Test.m(IInt, Long)' and 'Test.m(ILong, Integer)' match">(() -> 1, null)</error>;
|
||||
m1(() -> 1, null);
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,7 @@ class Boo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Optional<String> value = Optional.of("value");
|
||||
<error descr="Incompatible types. Found: 'foo.Boo.MyGenericClass<capture<?>>', required: 'foo.Boo.MyGenericClass<java.lang.Integer>'">MyGenericClass<Integer> myClassValue = value.map(MyGenericClass::<Integer>create).orElse(null);</error>
|
||||
MyGenericClass<Integer> myClassValue = value.map(MyGenericClass::<Integer>create).<error descr="Incompatible types. Found: 'foo.Boo.MyGenericClass<capture<?>>', required: 'foo.Boo.MyGenericClass<java.lang.Integer>'">orElse</error>(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,12 +11,12 @@ class Test {
|
||||
}
|
||||
|
||||
void test(boolean cond) {
|
||||
<error descr="Ambiguous method call: both 'Test.m(GetInt)' and 'Test.m(GetInteger)' match">m</error>(() -> {
|
||||
m<error descr="Ambiguous method call: both 'Test.m(GetInt)' and 'Test.m(GetInteger)' match">(() -> {
|
||||
if (cond)
|
||||
return 42;
|
||||
else
|
||||
return foo();
|
||||
});
|
||||
})</error>;
|
||||
|
||||
m(() -> {
|
||||
return foo();
|
||||
|
||||
@@ -14,7 +14,7 @@ class Test {
|
||||
}
|
||||
|
||||
void fooBar(IntStream1 instr){
|
||||
Supplier<Stream<Integer>> si = () -> instr.<error descr="Ambiguous method call: both 'IntStream1.map(IntFunction<Integer>)' and 'IntStream1.map(IntUnaryOperator)' match">map</error> ((i) -> (( i % 2) == 0) ? i : -i).boxed();
|
||||
Supplier<Stream<Integer>> si = () -> instr.map <error descr="Ambiguous method call: both 'IntStream1.map(IntFunction<Integer>)' and 'IntStream1.map(IntUnaryOperator)' match">((i) -> (( i % 2) == 0) ? i : -i)</error>.boxed();
|
||||
System.out.println(si);
|
||||
Supplier<Stream<Integer>> si1 = () -> instr.map <error descr="Ambiguous method call: both 'IntStream1.map(IntFunction<Integer>)' and 'IntStream1.map(IntUnaryOperator)' match">(null)</error>.boxed();
|
||||
System.out.println(si1);
|
||||
|
||||
@@ -12,6 +12,6 @@ abstract class PertinentToApplicabilityOfExplicitlyTypedLambdaTest {
|
||||
abstract void foo(B b);
|
||||
|
||||
{
|
||||
<error descr="Ambiguous method call: both 'PertinentToApplicabilityOfExplicitlyTypedLambdaTest.foo(A)' and 'PertinentToApplicabilityOfExplicitlyTypedLambdaTest.foo(B)' match">foo</error>(<warning descr="Parameter 'x' is never used">x</warning> -> <warning descr="Parameter 'y' is never used">y</warning> -> 42);
|
||||
foo<error descr="Ambiguous method call: both 'PertinentToApplicabilityOfExplicitlyTypedLambdaTest.foo(A)' and 'PertinentToApplicabilityOfExplicitlyTypedLambdaTest.foo(B)' match">(<warning descr="Parameter 'x' is never used">x</warning> -> <warning descr="Parameter 'y' is never used">y</warning> -> 42)</error>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,6 @@ class B extends A {
|
||||
static void foo(IntFunction<String> f) {}
|
||||
|
||||
public static void main(String[] args) {
|
||||
<error descr="Ambiguous method call: both 'B.foo(IntFunction<String>)' and 'A.foo(Function<String, String>)' match">foo</error>(a -> "1");
|
||||
foo<error descr="Ambiguous method call: both 'B.foo(IntFunction<String>)' and 'A.foo(Function<String, String>)' match">(a -> "1")</error>;
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,6 @@ class Main {
|
||||
}
|
||||
|
||||
{
|
||||
<error descr="Ambiguous method call: both 'Main.perform(Runnable)' and 'Main.perform(TRunnable<Throwable>)' match">perform</error>(() -> {});
|
||||
perform<error descr="Ambiguous method call: both 'Main.perform(Runnable)' and 'Main.perform(TRunnable<Throwable>)' match">(() -> {})</error>;
|
||||
}
|
||||
}
|
||||
@@ -14,10 +14,10 @@ abstract class Test {
|
||||
foo(x -> {
|
||||
return x += 1;
|
||||
});
|
||||
<error descr="Ambiguous method call: both 'Test.foo(A)' and 'Test.foo(B)' match">foo</error>(x -> x += 1);
|
||||
foo<error descr="Ambiguous method call: both 'Test.foo(A)' and 'Test.foo(B)' match">(x -> x += 1)</error>;
|
||||
foo(<warning descr="Parameter 'x' is never used">x</warning> -> 1);
|
||||
foo(x -> <error descr="Operator '!' cannot be applied to 'int'">!x</error>);
|
||||
<error descr="Ambiguous method call: both 'Test.foo(A)' and 'Test.foo(B)' match">foo</error>(x -> ++x);
|
||||
foo<error descr="Ambiguous method call: both 'Test.foo(A)' and 'Test.foo(B)' match">(x -> ++x)</error>;
|
||||
foo(<warning descr="Parameter 'x' is never used">x</warning> -> o instanceof String ? 1 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ class Foo {
|
||||
int j = k;
|
||||
};
|
||||
I ii1 = (final int k) -> {
|
||||
<error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">String s = k;</error>
|
||||
String s = <error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">k</error>;
|
||||
};
|
||||
|
||||
void bazz() {
|
||||
|
||||
@@ -12,31 +12,31 @@ class Foo {
|
||||
I ii = (final <error descr="Cannot resolve symbol 'k'">k</error><error descr="Identifier expected">)</error>->{};
|
||||
I ii1 = (k)->{
|
||||
int i = k;
|
||||
<error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">String s = k;</error>
|
||||
String s = <error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">k</error>;
|
||||
};
|
||||
|
||||
A<String> a = (ab) -> {
|
||||
String s = ab;
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">int i = ab;</error>
|
||||
int i = <error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">ab</error>;
|
||||
};
|
||||
|
||||
{
|
||||
A<String> a1;
|
||||
a1 = (ab)->{
|
||||
String s = ab;
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">int i = ab;</error>
|
||||
int i = <error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">ab</error>;
|
||||
};
|
||||
}
|
||||
|
||||
A<Integer> bazz() {
|
||||
bar((o) -> {
|
||||
String s = o;
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">int i = o;</error>
|
||||
int i = <error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">o</error>;
|
||||
});
|
||||
return (i) -> {
|
||||
Integer k = i;
|
||||
int n = i;
|
||||
<error descr="Incompatible types. Found: 'java.lang.Integer', required: 'java.lang.String'">String s = i;</error>
|
||||
String s = <error descr="Incompatible types. Found: 'java.lang.Integer', required: 'java.lang.String'">i</error>;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ class Foo {
|
||||
void foo(K k){}
|
||||
|
||||
void bar() {
|
||||
<error descr="Ambiguous method call: both 'Foo.foo(I)' and 'Foo.foo(K)' match">foo</error>((p) -> {
|
||||
foo<error descr="Ambiguous method call: both 'Foo.foo(I)' and 'Foo.foo(K)' match">((p) -> {
|
||||
System.out.println<error descr="Cannot resolve method 'println(<lambda parameter>)'">(p)</error>;
|
||||
});
|
||||
})</error>;
|
||||
|
||||
foo((p, k) -> {
|
||||
System.out.println(p);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// "Make 'C' extend 'java.lang.Throwable'" "true-preview"
|
||||
|
||||
class C extends Throwable {}
|
||||
class C extends Throwable <caret>{}
|
||||
class Main {
|
||||
public static void main(String[] args) {
|
||||
throw new <caret>C();
|
||||
throw new C();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@ class SwitchExpressions {
|
||||
};
|
||||
|
||||
double d = v1;
|
||||
<error descr="Incompatible types. Found: 'double', required: 'float'">float f = v1;</error>
|
||||
<error descr="Incompatible types. Found: 'double', required: 'int'">int in = v1;</error>
|
||||
float f = <error descr="Incompatible types. Found: 'double', required: 'float'">v1</error>;
|
||||
int in = <error descr="Incompatible types. Found: 'double', required: 'int'">v1</error>;
|
||||
|
||||
var v2 = switch (i) {
|
||||
case 1 -> C;
|
||||
@@ -22,8 +22,8 @@ class SwitchExpressions {
|
||||
};
|
||||
|
||||
in = v2;
|
||||
<error descr="Incompatible types. Found: 'char', required: 'byte'">byte b = v2;</error>
|
||||
<error descr="Incompatible types. Found: 'char', required: 'short'">short s = v2;</error>
|
||||
byte b = <error descr="Incompatible types. Found: 'char', required: 'byte'">v2</error>;
|
||||
short s = <error descr="Incompatible types. Found: 'char', required: 'short'">v2</error>;
|
||||
char c = v2;
|
||||
|
||||
var v3 = switch (i) {
|
||||
|
||||
@@ -77,7 +77,7 @@ public class DeclareCollectionAsInterface
|
||||
|
||||
void m() {
|
||||
stringToProperties("");
|
||||
<error descr="Incompatible types. Found: 'java.util.Properties', required: 'java.lang.String'">String s = stringToProperties2("");</error>
|
||||
String s = <error descr="Incompatible types. Found: 'java.util.Properties', required: 'java.lang.String'">stringToProperties2</error>("");
|
||||
<error descr="Incompatible types. Found: 'java.util.Properties', required: 'java.lang.String'">s = stringToProperties3("")</error>;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ class X {
|
||||
void <warning descr="Lambda-unfriendly overload of method 'a()'">a</warning> (Function<String, String> f) {}
|
||||
|
||||
void b() {
|
||||
<error descr="Ambiguous method call: both 'X.a(IntPredicate)' and 'X.a(Function<String, String>)' match">a</error>(z -> true);
|
||||
a<error descr="Ambiguous method call: both 'X.a(IntPredicate)' and 'X.a(Function<String, String>)' match">(z -> true)</error>;
|
||||
}
|
||||
|
||||
void assertEquals(double expected, Runnable messageSupplier) {}
|
||||
|
||||
@@ -7,7 +7,7 @@ class DoubleLiteralMayBeFloatLiteral {
|
||||
}
|
||||
|
||||
void error() {
|
||||
<error descr="Incompatible types. Found: 'float', required: 'int'">int i = (float)6.66;</error>
|
||||
int i = <error descr="Incompatible types. Found: 'float', required: 'int'">(float)6.66;</error>
|
||||
}
|
||||
|
||||
Float boxed() {
|
||||
|
||||
@@ -9,7 +9,7 @@ public class IntLiteralMayBeLongLiteral {
|
||||
}
|
||||
|
||||
void error() {
|
||||
<error descr="Incompatible types. Found: 'long', required: 'int'">int answer = (long)42;</error>
|
||||
int answer = <error descr="Incompatible types. Found: 'long', required: 'int'">(long)42;</error>
|
||||
}
|
||||
|
||||
Long boxed() {
|
||||
|
||||
@@ -132,6 +132,6 @@ class S {
|
||||
|
||||
void noWarnOnRedCode() {
|
||||
foo<error descr="'foo(int)' in 'com.siyeh.igtest.numeric.unnecessary_explicit_numeric_cast.S' cannot be applied to '(long)'">((long)0)</error>;
|
||||
<error descr="Incompatible types. Found: 'long', required: 'int'">int x = (long)0;</error>
|
||||
int x = <error descr="Incompatible types. Found: 'long', required: 'int'">(long)0;</error>
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
class Testcase {
|
||||
void test() {
|
||||
<error descr="Incompatible types. Found: 'java.lang.String', required: 'java.lang.Character'">Character x = "foo";</error>
|
||||
Character x = <error descr="Incompatible types. Found: 'java.lang.String', required: 'java.lang.Character'">"foo";</error>
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user