Skip to content

resolve answers only for classes the host models - #617

Merged
yogthos merged 1 commit into
mainfrom
fix/resolve-known-classes
Aug 14, 2026
Merged

resolve answers only for classes the host models#617
yogthos merged 1 commit into
mainfrom
fix/resolve-known-classes

Conversation

@yogthos

@yogthos yogthos commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

The v0.7.10 fleet's nrepl job caught a real #608 regression: resolve's no-var fallback accepted any dotted capitalized name (the syntactic class shape), so it returned a class token for classes jolt cannot back. compliment gates its JDK9 module scanner on (resolve-class ns 'java.lang.module.ModuleFinder) — truthy sent it into Files.walk/Collectors machinery that died with Unknown class Collectors, killing completion wholesale (every candidate set empty, 7 suite failures).

The dotted fallback now requires the class graph or a host registration, like the bare-symbol arm always did. Modeled classes keep resolving ((= (resolve 'java.util.Map) java.util.Map) still holds); unmodeled ones answer nil, which is the feature-detection answer tools want (the JVM throws ClassNotFoundException there — documented in known-divergences). Bare symbols in code keep the syntactic class model.

nrepl suite against a release binary with this fix: 63 tests, 132 assertions, 0 failures (was 7). Full make test green, cts matches baseline.

The no-var class fallback accepted any dotted capitalized name (the
syntactic class shape), so resolve returned a token for classes jolt
cannot back. Tooling feature-detects by resolving a class name —
compliment gates its JDK9 module scanner on resolving
java.lang.module.ModuleFinder — and a truthy answer sent it into
Files.walk/Collectors machinery that then died, killing completion
wholesale (the release fleet's nrepl job caught it). The dotted arm
now requires the class graph or a registration, like the bare-symbol
arm always did; the bare symbol still evaluates syntactically. Unit
rows pin the feature-detection contract; the nil-versus-
ClassNotFoundException difference is documented.
@yogthos
yogthos merged commit 45cb827 into main Aug 14, 2026
2 checks passed
@yogthos
yogthos deleted the fix/resolve-known-classes branch August 14, 2026 07:26
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.

1 participant