jolt/test/integration
Yogthos 824b30defd feat: report provably-wrong calls to user functions, opt-in (jolt-zo1)
The success checker fired only against core-fn error domains (stable, not
redefinable). This adds reporting of a call that passes a provably-wrong
type to a USER fn whose body requires otherwise — e.g. a fn that only does
arithmetic on a param, called with a string.

As check-walk sees defs it registers each non-redefinable single-fixed-arity
user fn's {:params :body} in module state (user-sig-box, accumulating across
forms like rtenv-box — a def must precede its call). At a call site (strict
mode only) the body is re-checked with ONE parameter bound to its concrete
argument type, others :any; if that produces a diagnostic the all-:any body
did not, the argument alone is provably wrong and the call is reported.
Monotonic — binding a concrete type can only add error-domain hits — so still
no false positives. A cycle guard (checking-box) terminates mutual recursion.

Gated behind JOLT_TYPE_CHECK_USER (orthogonal to the warn/error level)
because it rests on the closed-world assumption, weaker than the core-fn
case. check-form gains a strict? arity; the default path is unchanged and
user-fn code runs only when the checker is enabled. ^:redef/^:dynamic and
multi/variadic fns are not registered (their body is no stable requirement).

Gate green, suite 4718, conformance 335/335.
2026-06-13 11:56:21 -04:00
..
aot-test.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
api-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
bootstrap-fixpoint-test.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
cli-test.janet errors: reader errors carry file:line:col (jolt-2o7.5) 2026-06-12 10:55:42 -04:00
clojure-stdlib-suite-test.janet edn: fix strict-map? regression in edn->value; apply EDN built-in tags 2026-06-10 12:25:45 -04:00
clojure-test-suite-test.janet core: zero?/pos?/every? to 00-syntax, char? to the overlay; fix rest/next over sets and maps 2026-06-11 13:24:51 -04:00
compile-mode-test.janet errors: unresolved symbols error with Clojure's message (jolt-2o7.3) 2026-06-12 10:07:48 -04:00
config-lib-test.janet core: java shims for yogthos/config + three conformance fixes 2026-06-11 00:11:04 -04:00
conformance-test.janet core: three bug fixes — ifn?, prefer-method dispatch, reader comments in map values 2026-06-10 21:03:14 -04:00
ctx-image-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
deps-aliases-test.janet deps: aliases, user config merge, tools.deps conflict semantics 2026-06-10 23:13:46 -04:00
deps-conflicts-test.janet deps: aliases, user config merge, tools.deps conflict semantics 2026-06-10 23:13:46 -04:00
deps-conformance-test.janet regex: \p{...} property classes; interop: the String method surface (cuerdas is green) 2026-06-10 21:29:22 -04:00
deps-loader-test.janet test: fall back to /tmp when TMPDIR is unset (Linux CI) 2026-06-05 23:07:20 -04:00
deps-resolve-test.janet deps: :jpm/module coordinates; the janet.* bridge autoloads jpm modules 2026-06-11 20:58:43 -04:00
deps-tasks-test.janet deps: global gitlibs-style clone cache + :tasks runner 2026-06-10 23:22:36 -04:00
direct-linking-test.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
dispatch-cache-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
embedded-stdlib-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
fallback-zero-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
features-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
inline-sra-test.janet perf: AOT escape analysis (IR inlining + scalar replacement) 2026-06-12 15:58:50 -04:00
ir-passes-test.janet errors: unresolved symbols error with Clojure's message (jolt-2o7.3) 2026-06-12 10:07:48 -04:00
jank-conformance-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
lazy-infinite-test.janet core: staged recompile for early defns; keys/vals/empty? leave the seed (jolt-4j3) 2026-06-10 16:16:23 -04:00
macro-expansion-test.janet core: staged recompile for early defns; keys/vals/empty? leave the seed (jolt-4j3) 2026-06-10 16:16:23 -04:00
namespace-test.janet core: close the compile-path gaps that broke uberscripting Selmer + config 2026-06-11 01:31:50 -04:00
nrepl-test.janet ci: fix the one red test on CI runners; document the gate + porting gotchas 2026-06-10 16:59:12 -04:00
sci-bootstrap-test.janet core: close the compile-path gaps that broke uberscripting Selmer + config 2026-06-11 01:31:50 -04:00
sci-runtime-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
self-host-test.janet core: staged recompile for early defns; keys/vals/empty? leave the seed (jolt-4j3) 2026-06-10 16:16:23 -04:00
selmer-test.janet core: java.time + java.io shims — Selmer renders end to end (jolt-ea7) 2026-06-10 22:29:53 -04:00
staged-bootstrap-test.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
struct-hint-test.janet test: cover ^:struct on let bindings (jolt-94n) 2026-06-12 20:25:15 -04:00
suite-worker.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
systematic-coverage-test.janet core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
type-check-test.janet feat: report provably-wrong calls to user functions, opt-in (jolt-zo1) 2026-06-13 11:56:21 -04:00
type-infer-phase1-test.janet perf: structural type inference (RFC 0005) — nested access typed, hint-free 2026-06-13 10:44:40 -04:00
type-infer-phase2-test.janet feat: Phase 2 vector-op specialization — count/nth on inferred vectors (jolt-d6u) 2026-06-13 09:28:16 -04:00
type-infer-phase3-test.janet perf: structural type inference (RFC 0005) — nested access typed, hint-free 2026-06-13 10:44:40 -04:00
type-infer-test.janet feat: Phase 0 intra-procedural collection-type inference (jolt-6sr) 2026-06-13 01:46:34 -04:00
uberscript-test.janet deps phases 3-4: uberscript bundling + conformance harness 2026-06-05 23:36:40 -04:00