It appears when a switch expression contains a try-finally statement where the finally block always uses yield causes CFR to omit subsequent code after the switch expression.
This might be a bit contrived, but maybe it highlights a more generic issue?
CFR version
0.153-SNAPSHOT (1a7dfa3)
Compiler
javac 17
Description
It appears when a
switch
expression contains atry
-finally
statement where thefinally
block always usesyield
causes CFR to omit subsequent code after theswitch
expression.This might be a bit contrived, but maybe it highlights a more generic issue?
Example
Source:
Decompiled output:
Maybe this is related to the dead code javac generates (see first
goto 30
below):