Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8010682

Enhance erased-signature clash check for subsignatures

    Details

      Description

      The declaration of C.m should be illegal here, because it does not override A.m, but at run time an invocation of A.m will have the effect of calling C.m.

      public class A<T> {
       public void m(T arg) { System.out.println("A.m"); }
      }
      public class B<U extends Number> extends A<U> {
       public void m(Number arg) { System.out.println("B.m"); }
      }
      public class C<V extends Integer> extends B<V> {
       public void m(Number arg) { System.out.println("C.m"); }
      }

      This requires an accompanying spec change; see JDK-8010681.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                dlsmith Dan Smith
                Reporter:
                dlsmith Dan Smith
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: