Fixed problem with overriding method with non-trivial raw type (when erased type parameter has upper bound)

Also added cases for the code which was changed.
This commit is contained in:
Evgeny Gerashchenko
2014-02-06 00:09:59 +04:00
parent 2d31d62163
commit ce7e0a7457
12 changed files with 110 additions and 16 deletions
@@ -0,0 +1,11 @@
package test;
public interface RawTypeWithUpperBound {
public interface Foo<T extends CharSequence> {
}
interface Bar {
void f(Foo f);
}
}
@@ -0,0 +1,15 @@
package test
public trait RawTypeWithUpperBound : java.lang.Object {
public trait Bar : java.lang.Object {
public abstract fun f(/*0*/ p0: test.RawTypeWithUpperBound.Foo<out jet.CharSequence?>?): jet.Unit
}
public trait Foo</*0*/ T : jet.CharSequence?> : java.lang.Object {
}
}
package test.RawTypeWithUpperBound {
public /*synthesized*/ fun Bar(/*0*/ function: (test.RawTypeWithUpperBound.Foo<out jet.CharSequence?>?) -> jet.Unit): test.RawTypeWithUpperBound.Bar
}
@@ -0,0 +1,4 @@
package test;
public interface RawUpperBound<T extends RawUpperBound> {
}
@@ -0,0 +1,4 @@
package test
public trait RawUpperBound</*0*/ T : test.RawUpperBound<out jet.Any?>?> : java.lang.Object {
}
@@ -0,0 +1,4 @@
package test;
public interface RecursiveRawUpperBound<T extends RecursiveRawUpperBound> {
}
@@ -0,0 +1,4 @@
package test
public trait RecursiveRawUpperBound</*0*/ T : test.RecursiveRawUpperBound<out jet.Any?>?> : java.lang.Object {
}
@@ -0,0 +1,4 @@
package test;
public interface RecursiveWildcardUpperBound<T extends RecursiveWildcardUpperBound> {
}
@@ -0,0 +1,4 @@
package test
public trait RecursiveWildcardUpperBound</*0*/ T : test.RecursiveWildcardUpperBound<out jet.Any?>?> : java.lang.Object {
}