blob: cb22cf98aefb4107cb25658a1b838e6e57d48da3 [file] [log] [blame]
import java.lang.Integer;
interface I {
void m(int i);
}
interface A<B> {
void foo(B b);
}
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>
};
A<String> a = (ab) -> {
String s = ab;
<error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">int i = ab;</error>
};
{
A<String> a1;
a1 = (ab)->{
String s = ab;
<error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">int i = ab;</error>
};
}
A<Integer> bazz() {
bar((o) -> {
String s = o;
<error descr="Incompatible types. Found: 'java.lang.String', required: 'int'">int i = 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>
};
}
void bar(A<String> a){}
}
class CastInference {
public interface I1<X> {
X m();
}
public interface I2<X> {
X m();
}
public static <X> void foo(I1<X> s) {}
public static <X> void foo(I2<X> s) {}
public static void main(String[] args) {
foo((I1<Integer>)() -> 42);
I1<Integer> i1 = (I1<Integer>)() -> 42;
}
}
class WildcardBoundsUsage {
interface I<X> {
boolean foo(X x);
}
public I<Character> bar(I<? super Character> predicate) {
return null;
}
{
I<Character> i = bar(c -> c.compareTo('x') < 0);
}
}