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

8.4.5: Clean up return-type-substitutable definition

    Details

      Description

      A few problems with return-type-substitutable, as defined in JLS 8:

      - It talks about adapting type parameters without first asserting that the two signatures are the same (if not, the operation is undefined)

      - It performs unchecked conversion *before* widening; javac and assignment perform it *after* widening

      - It asserts R1 == |R2|, while javac checks that R1 <: |R2|

      - Cosmetically, "does not have the same signature" is (probably?) more general than needed—we're really asserting that d1 is a proper subsignature of d2, rather than being the same.

      For the javac discrepancies, it may be that javac needs to be corrected, but we should look more closely and the motivation for the specified rules.

        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: