mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-10 01:09:46 +07:00
include all inference variables for resolve and ignore additional constraints checks if the inference is going to failure; this way if (expr()) would get type of the 'standalone' expression instead of expression with boolean as expected type
16 lines
544 B
Java
16 lines
544 B
Java
class Test {
|
|
static class SuperFoo<X> {}
|
|
|
|
static class Foo<X extends Number> extends SuperFoo<X> {}
|
|
|
|
interface I<Y> {
|
|
SuperFoo<Y> m();
|
|
}
|
|
|
|
<R> SuperFoo<R> foo(I<R> ax) { return null; }
|
|
|
|
SuperFoo<String> ls = foo(<error descr="Incompatible types. Required SuperFoo<String> but 'foo' was inferred to SuperFoo<R>:
|
|
no instance(s) of type variable(s) exist so that String conforms to Number">() -> new Foo<>()</error>);
|
|
SuperFoo<Integer> li = foo(() -> new Foo<>());
|
|
SuperFoo<?> lw = foo(() -> new Foo<>());
|
|
} |