jmove/tests/java
loki5512344 f8004e669b
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
2026-09-15 19:05:54 +02:00
..
basic/src/main/java feat(java): Phase 1.5 — tree-sitter Java frontend, package-aware mv, e2e fixtures 2026-09-13 17:29:07 +02:00
fix/src/main/java/com/example feat: fix engine (Phase 1.6) + git-aware mv + windows-safe path output 2026-09-15 16:10:04 +02:00
fix_missing/src/main/java/com/example feat: fix engine (Phase 1.6) + git-aware mv + windows-safe path output 2026-09-15 16:10:04 +02:00
mismatch/src/main/java/com/example feat(check): java public-class ⇄ file-name mismatch — layout finding with a ready jmove mv repair 2026-09-15 19:05:54 +02:00
monorepo feat: global --source-root — index/mv/check/fix one subtree; deterministic Java FQN resolution in monorepos with duplicate packages (guava vs android/guava); move mv_reject to output.rs 2026-09-15 16:48:57 +02:00
order/src/main/java/com/example feat: fix engine (Phase 1.6) + git-aware mv + windows-safe path output 2026-09-15 16:10:04 +02:00