mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-07 13:39:36 +07:00
bad return type in lambda expression: requited type added; range corrected (IDEA-134942)
This commit is contained in:
@@ -6,8 +6,8 @@ class Test1 {
|
||||
{
|
||||
VoidReturnType aI = () -> System.out.println();
|
||||
VoidReturnType aI1 = () -> {System.out.println();};
|
||||
VoidReturnType aI2 = <error descr="Unexpected return value">() -> {return 1;}</error>;
|
||||
VoidReturnType aI3 = <error descr="Incompatible return type int in lambda expression">() -> 1</error>;
|
||||
VoidReturnType aI2 = () -> {return <error descr="Unexpected return value">1</error>;};
|
||||
VoidReturnType aI3 = () -> <error descr="Bad return type in lambda expression: int cannot be converted to void">1</error>;
|
||||
VoidReturnType aI4 = () -> {return;};
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@ class Test2 {
|
||||
int foo();
|
||||
}
|
||||
{
|
||||
IntReturnType aI = <error descr="Incompatible return type void in lambda expression">() -> System.out.println()</error>;
|
||||
IntReturnType aI = () -> <error descr="Bad return type in lambda expression: void cannot be converted to int">System.out.println()</error>;
|
||||
IntReturnType aI1 = () -> {System.out.println();<error descr="Missing return statement">}</error>;
|
||||
IntReturnType aI2 = () -> {return 1;};
|
||||
IntReturnType aI3 = () -> 1;
|
||||
@@ -31,7 +31,7 @@ class Test3 {
|
||||
X foo();
|
||||
}
|
||||
{
|
||||
XReturnType<Object> aI = <error descr="Incompatible return type void in lambda expression">() -> System.out.println()</error>;
|
||||
XReturnType<Object> aI = () -> <error descr="Bad return type in lambda expression: void cannot be converted to Object">System.out.println()</error>;
|
||||
XReturnType<Object> aI1 = () -> {System.out.println();<error descr="Missing return statement">}</error>;
|
||||
XReturnType<Object> aI2 = () -> {return 1;};
|
||||
XReturnType<Object> aI3 = () -> 1;
|
||||
@@ -47,10 +47,10 @@ class Test4 {
|
||||
}
|
||||
|
||||
{
|
||||
YXReturnType<Object> aI = <error descr="Incompatible return type void in lambda expression">() -> System.out.println()</error>;
|
||||
YXReturnType<Object> aI = () -> <error descr="Bad return type in lambda expression: void cannot be converted to Test4.Y<Object>">System.out.println()</error>;
|
||||
YXReturnType<Object> aI1 = () -> {System.out.println();<error descr="Missing return statement">}</error>;
|
||||
YXReturnType<Object> aI2 = <error descr="Incompatible return type int in lambda expression">() -> {return 1;}</error>;
|
||||
YXReturnType<Object> aI3 = <error descr="Incompatible return type int in lambda expression">() -> 1</error>;
|
||||
YXReturnType<Object> aI2 = () -> {return <error descr="Bad return type in lambda expression: int cannot be converted to Test4.Y<Object>">1</error>;};
|
||||
YXReturnType<Object> aI3 = () -> <error descr="Bad return type in lambda expression: int cannot be converted to Test4.Y<Object>">1</error>;
|
||||
YXReturnType<Object> aI4 = () -> new Y<Object>(){};
|
||||
YXReturnType<Object> aIDiamond = () -> new Y<>();
|
||||
|
||||
|
||||
@@ -68,5 +68,5 @@ class ReturnTypeChecks1 {
|
||||
}
|
||||
|
||||
I<Integer, Integer> accepted = i -> { return i; };
|
||||
I<Double, Integer> rejected = <error descr="Incompatible return type Double in lambda expression">i -> { return i; }</error>;
|
||||
I<Double, Integer> rejected = i -> { return <error descr="Bad return type in lambda expression: Double cannot be converted to Integer">i</error>; };
|
||||
}
|
||||
|
||||
@@ -24,8 +24,8 @@ class Test {
|
||||
boolean b1 = as.forAll(s -> ac.forAll<error descr="Cannot resolve method 'forAll(<lambda expression>)'">(c -> false)</error>);
|
||||
String s1 = as.forAll(s -> ac.forAll<error descr="Cannot resolve method 'forAll(<lambda expression>)'">(c -> "")</error>);
|
||||
boolean b2 = as.forAll(s -> ac.forAll<error descr="Cannot resolve method 'forAll(<lambda expression>)'">(c -> "")</error>);
|
||||
String s2 = as.forAll2(s -> ac.forAll2(<error descr="Incompatible return type boolean in lambda expression">c -> false</error>));
|
||||
boolean b3 = as.forAll((I<String, Boolean>)s -> ac.forAll((I<Character, Boolean>)<error descr="Incompatible return type String in lambda expression">c -> ""</error>));
|
||||
String s3 = as.forAll((II<String, String>)s -> ac.forAll((II<Character, String>)<error descr="Incompatible return type boolean in lambda expression">c -> false</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>));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class TypeArgsConsistency {
|
||||
I<Integer> i1 = (i, j) -> i + j;
|
||||
foo((i, j) -> i + j);
|
||||
I<Integer> i2 = bar((i, j) -> i + j);
|
||||
I<Integer> i3 = bar(<error descr="Incompatible return type String in lambda expression">(i, j) -> "" + i + j</error>);
|
||||
I<Integer> i3 = bar((i, j) -> <error descr="Bad return type in lambda expression: String cannot be converted to Integer">"" + i + j</error>);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ class TypeArgsConsistency1 {
|
||||
I<Integer> i1 = (i, j) -> i + j;
|
||||
foo((i, j) -> i + j);
|
||||
I<Integer> i2 =bar((i, j) -> i) ;
|
||||
I<Integer> i3 = bar(<error descr="Incompatible return type String in lambda expression">(i, j) -> "" + i + j</error>);
|
||||
I<Integer> i3 = bar((i, j) -> <error descr="Bad return type in lambda expression: String cannot be converted to int">"" + i + j</error>);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ class TypeArgsConsistency2 {
|
||||
I<Integer> i1 = bar(x -> x);
|
||||
I1<Integer> i2 = bar1(x -> 1);
|
||||
I2<String> aI2 = bar2(x -> "");
|
||||
I2<Integer> aI28 = bar2( <error descr="Incompatible return type String in lambda expression">x-> ""</error>);
|
||||
I2<Integer> aI28 = bar2( x-> <error descr="Bad return type in lambda expression: String cannot be converted to Integer">""</error>);
|
||||
I2<Integer> i3 = bar2(x -> x);
|
||||
I2<Integer> i4 = bar2(x -> foooI());
|
||||
System.out.println(i4.foo(2));
|
||||
|
||||
@@ -32,7 +32,7 @@ class Test1 {
|
||||
I<Object> lO = x->x;
|
||||
bar2("", lO);
|
||||
|
||||
I<String> lS = <error descr="Incompatible return type List<String> in lambda expression">x->x</error>;
|
||||
I<String> lS = x-><error descr="Bad return type in lambda expression: List<String> cannot be converted to String">x</error>;
|
||||
bar2("", lS);
|
||||
|
||||
bar2("", x -> x);
|
||||
@@ -66,9 +66,9 @@ class Test2 {
|
||||
{
|
||||
bar(x -> x);
|
||||
bar1(x -> x);
|
||||
bar2(1, <error descr="Incompatible return type List<Integer> in lambda expression">x -> x</error>);
|
||||
bar2("", <error descr="Incompatible return type List<String> in lambda expression">x -> x</error>);
|
||||
bar3(<error descr="Incompatible return type List<String> in lambda expression">x -> x</error>, "");
|
||||
bar2(1, x -> <error descr="Bad return type in lambda expression: List<Integer> cannot be converted to Integer">x</error>);
|
||||
bar2("", x -> <error descr="Bad return type in lambda expression: List<String> cannot be converted to String">x</error>);
|
||||
bar3(x -> <error descr="Bad return type in lambda expression: List<String> cannot be converted to String">x</error>, "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ class Test5 {
|
||||
static <T> void bar(I<T> i){}
|
||||
|
||||
{
|
||||
bar(<error descr="Incompatible return type <null> in lambda expression">() -> null</error>);
|
||||
bar(() -> <error descr="Bad return type in lambda expression: <null> cannot be converted to void">null</error>);
|
||||
}
|
||||
}
|
||||
class Test6 {
|
||||
@@ -31,7 +31,7 @@ class Test6 {
|
||||
static <T> void bar(I<T> i){}
|
||||
|
||||
{
|
||||
bar(<error descr="Incompatible return type <null> in lambda expression">() -> null</error>);
|
||||
bar(() -> <error descr="Bad return type in lambda expression: <null> cannot be converted to void">null</error>);
|
||||
bar(() -> {});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,12 +7,12 @@ public class Main {
|
||||
|
||||
{
|
||||
String s = "";
|
||||
I<Object> arr1 = <error descr="Incompatible return type String in lambda expression">(t) -> s</error>;
|
||||
I<Object> arr1 = (t) -> <error descr="Bad return type in lambda expression: String cannot be converted to void">s</error>;
|
||||
I<Object> arr2 = (t) -> s.toString();
|
||||
|
||||
I<Integer> i1 = <error descr="Incompatible return type int in lambda expression">i -> i * 2</error>;
|
||||
I<Integer> i2 = <error descr="Incompatible return type int in lambda expression">i -> 2 * i</error>;
|
||||
I<Integer> i3 = <error descr="Incompatible return type void in lambda expression">i -> true ? foo() : foo()</error>;
|
||||
I<Integer> i1 = i -> <error descr="Bad return type in lambda expression: int cannot be converted to void">i * 2</error>;
|
||||
I<Integer> i2 = i -> <error descr="Bad return type in lambda expression: int cannot be converted to void">2 * i</error>;
|
||||
I<Integer> i3 = i -> <error descr="Bad return type in lambda expression: void cannot be converted to void">true ? foo() : foo()</error>;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user