-
Bug
-
Resolution: Fixed
-
P4
-
7
-
unknown
-
generic
An attempt to fix 6337171 has been made - however the fix failed due to several problems:
*) Override bridge lead to compatibility issues w.r.t. raw types:
class A<X> {
public X m(X x) { return x; }
}
class B<X extends B<X>> extends A<X> {}
class C extends B { }
public class Test {
public static void main(String argv[]) {
C c = new C();
c.m(new Object());
}
}
*) Interplay between overload resolution and override bridge causes infinite loop when code is executed (6996415)
Is it possible to fix 6337171 w/o causing the aforementioned problems?
*) Override bridge lead to compatibility issues w.r.t. raw types:
class A<X> {
public X m(X x) { return x; }
}
class B<X extends B<X>> extends A<X> {}
class C extends B { }
public class Test {
public static void main(String argv[]) {
C c = new C();
c.m(new Object());
}
}
*) Interplay between overload resolution and override bridge causes infinite loop when code is executed (6996415)
Is it possible to fix 6337171 w/o causing the aforementioned problems?
- relates to
-
JDK-6337171 javac should create bridge methods when type variable bounds restricted
- Open
-
JDK-6996415 Override bridges causes compiler-generated code to end up with synthetic infinite loop
- Closed
-
JDK-8005542 jtreg test OverrideBridge.java contains @ignore
- Closed