feat(check): java public-class ⇄ file-name mismatch — layout finding with a ready jmove mv repair
- parser::java::class_name: exactly-one-public-top-level-type rule
(package-info/module-info and 0-or-2-public files skipped)
- check gains name_mismatches[] (JSON, omitted when clean) + human lines;
exit 2 covers both kinds; fix engine untouched by design — a file rename
is not a byte edit, and mv keeps the FQN so no imports change
- output split into output/{mod,check} to stay under the 250-line rule
- e2e: reports Bad.java, stays quiet on Good.java, suggested rename makes
check pass and preserves the file bytes
This commit is contained in:
parent
c0b06efe57
commit
f8004e669b
12 changed files with 334 additions and 80 deletions
|
|
@ -105,7 +105,7 @@ fn check_passes_on_clean_and_fails_on_broken_fixture() {
|
|||
let clean = fixture("basic");
|
||||
jmove(&clean, &["check"])
|
||||
.success()
|
||||
.stdout(predicate::str::contains("no broken imports"));
|
||||
.stdout(predicate::str::contains("check: no findings"));
|
||||
|
||||
let messy = fixture("complex");
|
||||
jmove(&messy, &["check"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue