erasure return type when unchecked conversion was required deep inside (IDEA-168316)

This commit is contained in:
Anna.Kozlova
2017-02-17 10:57:30 +01:00
parent f0d4a83700
commit e794bbcb0f
5 changed files with 60 additions and 4 deletions
@@ -0,0 +1,21 @@
class Foo<Z> {
void foo(final Bar baz) {
Z z = z(new Bar<String>(baz));
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">Z z1 = z(new Bar<>(baz));</error>
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">Z z2 = z(c(baz));</error>
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Z'">Z z3 = z(this.<String>c(baz));</error>
}
<P> Bar<P> c(Bar<P> b) {
return b;
}
private <X> Z z(Bar<X> b) {
return null;
}
}
class Bar<T> {
public Bar(Bar<T> v) {
}
}
@@ -0,0 +1,19 @@
// "Replace with <>" "false"
class Foo<Z> {
void foo(final Bar baz) {
Z z = z(new Bar<St<caret>ring>(baz));
}
<P> Bar<P> c(Bar<P> b) {
return b;
}
private <X> Z z(Bar<X> b) {
return null;
}
}
class Bar<T> {
public Bar(Bar<T> v) {
}
}