Commit dce43b4
Add CI check comparing @specs against inferred type signatures
make check_specs runs lib/elixir/scripts/compare_specs_and_signatures.exs,
which translates stdlib @SPEC declarations into Module.Types.Descr types
and compares them against the compiler-inferred signatures (ExCk chunk)
with semantic subtyping, slice-wise per spec clause. Residue that cannot
be auto-triaged is executed against concrete witnesses (rejection-sampled
in-domain values plus doctest-mined calls) in sandboxed tasks.
The gate fails on witness-proven findings, lattice contradictions, and
any divergence not acknowledged in compare_specs_exclusions.txt; stale
exclusions only warn. Witness sampling is PRNG-seeded so runs are
deterministic on a given build. Wired into the deterministic CI matrix
entry, ~11s per run.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 251d3fe commit dce43b4
4 files changed
Lines changed: 1516 additions & 1 deletion
File tree
- .github/workflows
- lib/elixir/scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
100 | 104 | | |
101 | 105 | | |
102 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
144 | 149 | | |
145 | 150 | | |
146 | 151 | | |
| |||
0 commit comments