Skip to content

Recover Java switch emission and preserve colliding source outputs - #21

Merged
asLody merged 13 commits into
asLody:mainfrom
LLeavesG:fix/java-control-flow-output
Aug 16, 2026
Merged

Recover Java switch emission and preserve colliding source outputs#21
asLody merged 13 commits into
asLody:mainfrom
LLeavesG:fix/java-control-flow-output

Conversation

@LLeavesG

Copy link
Copy Markdown
Contributor

Summary

  • infer null-select reference types, erase non-denotable method bounds, and isolate nested field namespaces
  • preserve case-colliding source files when writing a class shard to disk
  • keep Kotlin reification markers and non-void call results from dropping their continuations
  • return switch results directly, join complementary boolean branches, flatten terminal void tails, and reconstruct lowered string switches
  • preserve cmp operand evaluation and simplify repeated stable conditional arms
  • materialize shared vacuous predicate values before they are replayed by a later effect

This is one Java emission and semantic-normalization pipeline presented as 13 scoped commits. The CLI case-collision change is merged with the existing fail-soft save path so a write error still skips the rest of the shard only when --fail-fast is off.

Two earlier exception-cleanup commits remain on the ledger: they regress syncWithFinally / structured finally when stacked on current main.

Validation

  • cargo fmt --all -- --check
  • cargo check -p dexdec -p dexdec-workbench -p dexdec-mcp
  • cargo test -p dexdec --lib (569 passed)
  • 36 added regression scenarios
  • cargo test -p dexdec --test expected_test
  • cargo test -p dexdec --test cli_args_test
  • node --test scripts/version.test.mjs and node scripts/version.mjs check

Review notes

The commits move from Java type legality through CLI output identity to switch/branch reconstruction, so they can be reviewed in that order.

@asLody
asLody merged commit 3b38d32 into asLody:main Aug 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants