RFR: 8367499: Refactor exhaustiveness computation from Flow into a separate class [v3]

Vicente Romero vromero at openjdk.org
Fri Oct 10 17:26:33 UTC 2025


On Thu, 9 Oct 2025 15:31:26 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:

>> Currently the switch exhaustiveness computation code is part of `Flow`. And while conceptually the check is part of the `Flow` phase, the code is >500 lines of code currently, and likely to get bigger/more complicated in the future. Among other reasons due to enhancements like https://bugs.openjdk.org/browse/JDK-8367530.
>> 
>> The proposal herein is to move the exhaustiveness computation to a separate class `ExhastivenessComputer`. There's no functional change, only move of the code. This is intentional, to aid the review process.
>> 
>> One possibility to inspect what is happening is:
>> 
>> git show upstream/pr/27247:src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java >/tmp/Flow-original.java
>> diff -d -w /tmp/Flow-original.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ExhaustivenessComputer.java >/tmp/exhaustivenesscomputer-comparison.diff
>> diff -d -w /tmp/Flow-original.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java >/tmp/flow-comparison.diff
>> 
>> and inspecting `/tmp/exhaustivenesscomputer-comparison.diff`, `/tmp/flow-comparison.diff`.
>
> Jan Lahoda has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits:
> 
>  - Merge branch 'JDK-8364991' into JDK-8367499
>  - Adding doc comment.
>  - 8367499: Refactor exhaustiveness computation from Flow into a separate class

lgtm, looks clean

-------------

Marked as reviewed by vromero (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/27253#pullrequestreview-3324919291


More information about the compiler-dev mailing list