Repository navigation
Commit 49203a8
fix(proofs): align Idris Lang enum with Rust Language (Chapel not C)
Closes #41.
Both enumerations claim "49 variants + Unknown" but disagreed on which
49: Rust has `Chapel` (no `C`), Idris had `C` (no `Chapel`). The
completeness theorem was therefore technically vacuous for `C` (no
Rust dispatch to verify) and silently missing coverage for `Chapel`.
Option 1 from the issue (preferred): drop `C` from Idris, add `Chapel`.
Cpp already represents the C/C++ unified analyzer (analyze_c_cpp
dispatches on .c/.cpp/.h/.hpp/.cc/.hh), so there was never a separate
`C` constructor in the Rust source of truth.
Changes:
- `Lang`: remove `C`, add `Chapel` (under new "HPC / parallel" group)
- `analyzerFor`: drop `C` arm, add `Chapel` arm
- `detectorsFor`: replace `C, Cpp` with `Cpp` in all 8 affected lists
(UncheckedAllocation, UnboundedLoop, UnsafeCode, RaceCondition,
DeadlockPotential, ResourceLeak, InsecureProtocol, HardcodedSecret,
UncheckedError)
- Updated header comment to clarify Cpp = analyze_c_cpp
Verification:
- `idris2 --check src/abi/PatternCompleteness.idr` — totality OK
- Bijection check: 50 = 49 named + Unknown on both sides, zero diff
- `cargo build --release` clean
- `cargo clippy --all-targets --features signing,http -D warnings` clean
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 43d36ca commit 49203a8
1 file changed
Lines changed: 16 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
26 | 29 | | |
27 | 30 | | |
28 | | - | |
| 31 | + | |
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
| |||
44 | 47 | | |
45 | 48 | | |
46 | 49 | | |
| 50 | + | |
| 51 | + | |
47 | 52 | | |
48 | 53 | | |
49 | 54 | | |
| |||
70 | 75 | | |
71 | 76 | | |
72 | 77 | | |
73 | | - | |
74 | 78 | | |
75 | 79 | | |
76 | 80 | | |
| |||
106 | 110 | | |
107 | 111 | | |
108 | 112 | | |
| 113 | + | |
109 | 114 | | |
110 | 115 | | |
111 | 116 | | |
| |||
206 | 211 | | |
207 | 212 | | |
208 | 213 | | |
209 | | - | |
210 | | - | |
| 214 | + | |
| 215 | + | |
211 | 216 | | |
212 | | - | |
| 217 | + | |
213 | 218 | | |
214 | | - | |
215 | | - | |
216 | | - | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
217 | 222 | | |
218 | 223 | | |
219 | 224 | | |
220 | 225 | | |
221 | 226 | | |
222 | | - | |
| 227 | + | |
223 | 228 | | |
224 | 229 | | |
225 | | - | |
226 | | - | |
| 230 | + | |
| 231 | + | |
227 | 232 | | |
228 | 233 | | |
229 | 234 | | |
| |||
0 commit comments