Declare the two forward-referenced vars - #3
Merged
Conversation
Both files reference a var defined further down in the same file: zoned.clj calls odt from the ZonedDateTime method map for toOffsetDateTime, and fmt.clj calls parse-with-pattern from the formatter's .parse. JVM Clojure resolves a symbol when it analyzes the form, so neither file would compile there, and jolt used to accept them only because its analyzer late-bound a symbol inside a nested scope to a var in the compiling namespace, resolved at call time. jolt now reports the unresolved symbol at compile time like Clojure does, so both files need the declare that made them legal in the first place.
yogthos
pushed a commit
to jolt-lang/examples
that referenced
this pull request
Jul 29, 2026
jolt-lang/time#3 landed as a squash, so the sha this branch pinned is not on main; point both deps at the commits the new tags name instead — time v0.0.3 (70dfb79) and db v0.0.2 (f368b12).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
zoned.cljcallsodtfrom the ZonedDateTime method map fortoOffsetDateTime,and
fmt.cljcallsparse-with-patternfrom the formatter's.parse. Both varsare defined further down in their own file.
JVM Clojure resolves a symbol when it analyzes the form, so neither file would
compile there. jolt used to accept them because its analyzer late-bound a symbol
inside a nested scope to a var in the compiling namespace and resolved it at call
time; it now reports the unresolved symbol at compile time like Clojure does, so
requiring jolt.time.zoned fails with "Unable to resolve symbol: odt in this
context". A
declarein each file is what made the pattern legal in the firstplace.
The suite passes: 97 tests, 1020 assertions, no failures.