This PR includes a suggested change in behaviour of `javap -l` without `-v` or `-c`. Previously it was possible to print `LineNumberTable` and `LocalVariableTable` without disassembled code output. This didn't make much sense, as there is no context for this output. This PR proposes to output a warning for this case, as well as not print the `LineNumberTable`and `LocalVariableTable` attrubutes. They are nested attributes of the `CodeAttribute` and thus should only be printed if the `CodeAttribute` is also printed.
Small changes were also made to existing tests, which seem unproblematic to adjust. <details> <summary>Before: `javac -l EmptyLoop`</summary> Compiled from "EmptyLoop.java" public class EmptyLoop { public EmptyLoop(); Code: LineNumberTable: line 1: 0 public void emptyLoop(); Code: LineNumberTable: line 3: 0 line 5: 14 } </details> <details> <summary>After: `javac -l EmptyLoop`</summary> Warning: bad combination of options: -l without -c - line number and local variable tables will not be printed Compiled from "EmptyLoop.java" public class EmptyLoop { public EmptyLoop(); public void emptyLoop(); } </details> Stems from discussion in: https://github.com/openjdk/jdk/pull/22359 ------------- Commit messages: - feat: don't display LNT and LVT without -c/-v with warning Changes: https://git.openjdk.org/jdk/pull/22434/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22434&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8345145 Stats: 118 lines in 8 files changed: 105 ins; 5 del; 8 mod Patch: https://git.openjdk.org/jdk/pull/22434.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/22434/head:pull/22434 PR: https://git.openjdk.org/jdk/pull/22434