Split the success-checker out of types.clj
types.clj held the inferencer, the success-type checker, and the driver in one 716-line namespace. Move the self-contained checker into jolt.passes.types.check: the error-domain predicates (not-number?/not-seqable?/not-callable?), the op tables, type-name, check-invoke, and the user-fn registry. These are pure over inferred types and the run's env cells, with no inference, so a check-rule edit can no longer perturb the inferencer. The infer-coupled probes stay in types.clj — isolated-diag-count and check-user-call re-run inference, so moving them would make check depend on the inferencer and reintroduce the cycle. Verbatim move; new ns wired into ei-compiler-ns-files; seed re-minted to the byte-fixpoint.
This commit is contained in:
parent
59e231e40d
commit
70d52ae704
4 changed files with 197 additions and 184 deletions
|
|
@ -130,6 +130,7 @@
|
|||
(cons "jolt.passes.numeric" "jolt-core/jolt/passes/numeric.clj")
|
||||
(cons "jolt.passes.inline" "jolt-core/jolt/passes/inline.clj")
|
||||
(cons "jolt.passes.types.lattice" "jolt-core/jolt/passes/types/lattice.clj")
|
||||
(cons "jolt.passes.types.check" "jolt-core/jolt/passes/types/check.clj")
|
||||
(cons "jolt.passes.types" "jolt-core/jolt/passes/types.clj")
|
||||
(cons "jolt.passes" "jolt-core/jolt/passes.clj")))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue