check diamond applicability over static factory underneath (IDEA-159287)

This commit is contained in:
Anna Kozlova
2016-08-08 07:29:46 +02:00
parent eeefa20d7c
commit ccf3beba42
6 changed files with 32 additions and 2 deletions
@@ -0,0 +1,20 @@
import java.util.Comparator;
import java.util.Optional;
import java.util.stream.Collector;
import java.util.stream.Collectors;
class Collectinator<T, A, R> {
Collectinator(Collector<T, A, R> collector) {
}
static <K, L, M> Collectinator<K, L, M> create(Collector<K, L, M> c) {
return new Collectinator<K, L, M>(c);
}
public static void foo(Comparator<Foo> compareTo) {
Collectinator<Foo, ?, Optional<Foo>> foo = new Collectinator< >(Collectors.maxBy(compareTo));
Collectinator<Foo, ?, Optional<Foo>> foo1 = Collectinator.create(Collectors.maxBy(compareTo));
}
}
class Foo {}
@@ -6,7 +6,7 @@ class Test {
Holder dataHolder = null;
Result<String> r3 = new Result<error descr="Cannot infer arguments"><></error>(new Holder<>(dataHolder));
Result<String> r4 = Result.create<error descr="'create(K)' in 'Result' cannot be applied to '(Holder<E>)'">(new Holder<>(dataHolder))</error>;
Result<String> r4 = Result.create<error descr="'create(K)' in 'Result' cannot be applied to '(Holder)'">(new Holder<>(dataHolder))</error>;
Result<String> r5 = new Result<error descr="Cannot infer arguments"><></error>(Holder.create(dataHolder));
Result<String> r6 = Result.create<error descr="'create(K)' in 'Result' cannot be applied to '(Holder)'">(Holder.create(dataHolder))</error>;