inference: check glb conflicts after flatten in intersection type(IDEA-181017)

This commit is contained in:
Anna.Kozlova
2017-10-25 18:01:56 +02:00
parent c8f8341d2f
commit a2e13fee96
4 changed files with 56 additions and 23 deletions
@@ -11,6 +11,6 @@ abstract class A1{
abstract <T> T baz(List<? super T> a);
void bar(List<?> x){
String o = <error descr="Incompatible upper bounds: Object, capture of ?, String">baz(x);</error>
String o = <error descr="Type parameter T has incompatible upper bounds: capture of ? and String">baz(x);</error>
}
}
@@ -0,0 +1,30 @@
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
class Test {
private Map<FilterHelper, Integer> extractFilterCounts() {
final Function<FilterData, Integer> count = f -> null;
final Function<? super FilterData, ? extends FilterHelper> mapper = f -> null;
final List<FilterData> rows = Collections.emptyList();
return rows.stream().collect(Collectors.toMap(mapper, count));
}
private class FilterHelper {}
private class FilterData {}
}
class Test1 {
private void extractFilterCounts(final I<Integer> i1,
final I<? super Integer> i2) {
m(i2, i1);
}
private static <T> void m(I<? super T> i1, I<? super T> i2) { }
static class I<T> {}
}