diamonds: don't accept inferred types when error appeared during inference (IDEA-154619)

This commit is contained in:
Anna.Kozlova
2016-04-21 18:39:23 +02:00
parent 1fdce7d341
commit 5d6351b1ec
5 changed files with 30 additions and 5 deletions
@@ -1,14 +1,14 @@
class Test {
{
Holder h = null;
Result<String> r1 = new Result<><error descr="'Result(D)' in 'Result' cannot be applied to '(Holder)'">(h)</error>;
Result<String> r1 = new Result<<error descr="Cannot infer arguments"></error>>(h);
Result<String> r2 = Result.create<error descr="'create(K)' in 'Result' cannot be applied to '(Holder)'">(h)</error>;
Holder dataHolder = null;
Result<String> r3 = new Result<><error descr="'Result(D)' in 'Result' cannot be applied to '(Holder<E>)'">(new Holder<>(dataHolder))</error>;
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> r5 = new Result<>(Holder.create<error descr="'create(Holder<M>)' in 'Holder' cannot be applied to '(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>;
}
@@ -29,7 +29,7 @@ public class ConcurrentCollectors {
static <T, K, D, M1 extends Map<K, D>> C<T, M1> groupingBy(F<M1> f,
C<T, D> c,
BiConsumer<M1, T> consumer) {
return new CImpl<>(f, consumer, arg<error descr="'arg(ConcurrentCollectors.BiOp<V>)' in 'ConcurrentCollectors.Test3' cannot be applied to '(ConcurrentCollectors.BiOp<D>)'">(c.getOp())</error>);
return new CImpl<<error descr="Cannot infer arguments"></error>>(f, consumer, arg(c.getOp()));
}
static <K, V, M2 extends ConcurrentMap<K, V>> BiOp<M2> arg(BiOp<V> op) {
@@ -0,0 +1,13 @@
// "Change 1st parameter of method 'foo' from 'ArrayList<String>' to 'HashSet<E>'" "false"
import java.util.ArrayList;
import java.util.HashSet;
class InspecitonIssue {
void foo(ArrayList<String> lst) {}
void bar() {
foo(new Hash<caret>Set<>());
}
}