mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-26 00:11:26 +07:00
new inference: cache substitutor for outer call conflict resolution
This commit is contained in:
+2
-2
@@ -7,8 +7,8 @@ public class Sample {
|
||||
<B> B bar(G<B> gb) {return null;}
|
||||
|
||||
void f(G1 g1) {
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Sample.G<java.lang.String>'">G<String> l11 = bar(g1);</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">String l1 = bar(g1);</error>
|
||||
<error descr="Incompatible types. Found: 'B', required: 'Sample.G<java.lang.String>'">G<String> l11 = bar(g1);</error>
|
||||
<error descr="Incompatible types. Found: 'B', required: 'java.lang.String'">String l1 = bar(g1);</error>
|
||||
Object o = bar(g1);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -13,12 +13,12 @@ class SortedOp<T> implements StatefulOp<T, T> {
|
||||
}
|
||||
}
|
||||
|
||||
class Usage<T> {
|
||||
public <E, S extends BaseStream<E>> S pipeline(IntermediateOp<T, E> newOp) { return null; }
|
||||
public <R> R pipeline(TerminalOp<T, R> terminal) { return null;}
|
||||
class Usage<Ts> {
|
||||
public <E, S extends BaseStream<E>> S pipeline(IntermediateOp<Ts, E> newOp) { return null; }
|
||||
public <R> R pipeline(TerminalOp<Ts, R> terminal) { return null;}
|
||||
|
||||
|
||||
public Stream<T> sorted(Comparator<? super T> comparator) {
|
||||
public Stream<Ts> sorted(Comparator<? super Ts> comparator) {
|
||||
return pipeline(new SortedOp<>(comparator));
|
||||
}
|
||||
}
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import java.util.*;
|
||||
|
||||
class Test {
|
||||
|
||||
|
||||
void m(Runnable p) { }
|
||||
void m(List<Runnable> p) { }
|
||||
|
||||
{
|
||||
m(foo());
|
||||
m<error descr="Cannot resolve method 'm(java.lang.Object)'">(bar())</error>;
|
||||
}
|
||||
|
||||
<T> List<T> foo() {
|
||||
return null;
|
||||
}
|
||||
|
||||
<T> T bar() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user