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

javac should not add MethodParameters attributes to v51 and earlier class files

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 11
    • Component/s: tools
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b01

      Description

      javac currently emits MethodParameters attributes if -parameters is enabled even when writing v51 and earlier class files. It reports a warning when subsequently reading those class files if -Xlint:classfile is enabled.

      original compiler-dev report:
      http://mail.openjdk.java.net/pipermail/compiler-dev/2016-November/010508.html

      The suggestion in the thread is to not emit the attributes when writing class file versions for which it is not appropriate.

      === X.java
      class X {
        void f(int a) {}
      }
      === Y.java
      class Y {
        X x;
      }
      ===

      Repro (using 9.0.1+11):

      $ javac -parameters -source 7 -target 7 X.java
      $ javac -Xlint:classfile -sourcepath : Y.java
      ./X.class: warning: [classfile] MethodParameters attribute introduced in version 52.0 class files is ignored in version 51.0 class files

        Attachments

          Activity

            People

            • Assignee:
              cushon Liam Miller-Cushon
              Reporter:
              cushon Liam Miller-Cushon
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: