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

javac illegally accepts array as bound

    Details

    • Subcomponent:
    • Introduced In Build:
      b112
    • Introduced In Version:
      8
    • Resolved In Build:
      b117
    • Verification:
      Verified

      Backports

        Description

        Javac 8b112 accepts the following code:
        class Class<M extends Object[]> { }

        As per JLS 7, 4.4. Type Variables

        Grammar:

        TypeParameter:
            TypeVariable TypeBoundopt

        TypeBound:
            extends TypeVariable
            extends ClassOrInterfaceType AdditionalBoundListopt

        4.3. Reference Types and Values:
        ReferenceType:
            ClassOrInterfaceType
            TypeVariable
            ArrayType

        This means ArrayType should not be allowed.

        The following JCK tests fail:

          lang/TYPE/type140/type14003m0/type14003m0.html
        lang/TYPE/type140/type14003m1/type14003m1.html
        lang/TYPE/type140/type14003m2/type14003m2.html
        lang/TYPE/type140/type14003m3/type14003m3.html
          lang/TYPE/type140/type14003m0/type14003m01.html
        lang/TYPE/type140/type14003m1/type14003m11.html
        lang/TYPE/type140/type14003m2/type14003m21.html
        lang/TYPE/type140/type14003m3/type14003m31.html

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  emc Eric Mccorkle
                  Reporter:
                  vrudomet Victor Rudometov
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Due:
                    Created:
                    Updated:
                    Resolved: