@@ -23,9 +23,12 @@ module PanicAttack.ABI.PatternCompleteness
2323
2424||| All 49 programming languages supported by the scanner.
2525||| This MUST stay in sync with src/types.rs Language enum.
26+ ||| Note: Cpp is the C/C++ unified analyzer (analyze_c_cpp dispatches
27+ ||| on .c / .cpp / .h / .hpp / .cc / .hh — there is no separate C
28+ ||| constructor in the Rust enum).
2629public export
2730data Lang
28- = Rust | C | Cpp | Go | Java | Python | JavaScript | Ruby
31+ = Rust | Cpp | Go | Java | Python | JavaScript | Ruby
2932 -- BEAM family
3033 | Elixir | Erlang | Gleam
3134 -- ML family
@@ -44,6 +47,8 @@ data Lang
4447 | Nickel | Nix
4548 -- Scripting / data
4649 | Shell | Julia | Lua
50+ -- HPC / parallel
51+ | Chapel
4752 -- Nextgen custom DSLs
4853 | WokeLang | Eclexia | MyLang | JuliaTheViper | Oblibeny
4954 | Anvomidav | AffineScript | Ephapax | BetLang | ErrorLang
@@ -70,7 +75,6 @@ data HasAnalyzer : Lang -> Type where
7075public export
7176analyzerFor : (lang : Lang) -> HasAnalyzer lang
7277analyzerFor Rust = SpecificAnalyzer
73- analyzerFor C = SpecificAnalyzer
7478analyzerFor Cpp = SpecificAnalyzer
7579analyzerFor Go = SpecificAnalyzer
7680analyzerFor Java = SpecificAnalyzer
@@ -106,6 +110,7 @@ analyzerFor Nix = SpecificAnalyzer
106110analyzerFor Shell = SpecificAnalyzer
107111analyzerFor Julia = SpecificAnalyzer
108112analyzerFor Lua = SpecificAnalyzer
113+ analyzerFor Chapel = SpecificAnalyzer
109114analyzerFor WokeLang = SpecificAnalyzer
110115analyzerFor Eclexia = SpecificAnalyzer
111116analyzerFor MyLang = SpecificAnalyzer
@@ -206,24 +211,24 @@ data HasDetector : WPCategory -> Type where
206211||| matching code in analyzer.rs.
207212public export
208213detectorsFor : (cat : WPCategory) -> HasDetector cat
209- detectorsFor UncheckedAllocation = DetectedBy [C , Cpp ]
210- detectorsFor UnboundedLoop = DetectedBy [Rust , C , Cpp , Go , Python , JavaScript ]
214+ detectorsFor UncheckedAllocation = DetectedBy [Cpp ]
215+ detectorsFor UnboundedLoop = DetectedBy [Rust , Cpp , Go , Python , JavaScript ]
211216detectorsFor BlockingIO = DetectedBy [Rust , Go , Python , JavaScript ]
212- detectorsFor UnsafeCode = DetectedBy [Rust , C , Cpp , Zig , Nim , DLang ]
217+ detectorsFor UnsafeCode = DetectedBy [Rust , Cpp , Zig , Nim , DLang ]
213218detectorsFor PanicPath = DetectedBy [Rust , Go , Haskell ]
214- detectorsFor RaceCondition = DetectedBy [Rust , C , Cpp , Go ]
215- detectorsFor DeadlockPotential = DetectedBy [Rust , C , Cpp , Go ]
216- detectorsFor ResourceLeak = DetectedBy [Rust , C , Cpp ]
219+ detectorsFor RaceCondition = DetectedBy [Rust , Cpp , Go ]
220+ detectorsFor DeadlockPotential = DetectedBy [Rust , Cpp , Go ]
221+ detectorsFor ResourceLeak = DetectedBy [Rust , Cpp ]
217222detectorsFor CommandInjection = DetectedBy [Python , Ruby , JavaScript , Shell , Elixir , Erlang ]
218223detectorsFor UnsafeDeserialization = DetectedBy [Python , Ruby , JavaScript , Java ]
219224detectorsFor DynamicCodeExecution = DetectedBy [Python , JavaScript , Ruby , Elixir , Shell ]
220225detectorsFor UnsafeFFI = DetectedBy [Elixir , Erlang , Haskell , Pony , OCaml , Zig ]
221226detectorsFor AtomExhaustion = DetectedBy [Elixir , Erlang ]
222- detectorsFor InsecureProtocol = DetectedBy [Rust , C , Cpp , Go , Python , JavaScript , Ruby ]
227+ detectorsFor InsecureProtocol = DetectedBy [Rust , Cpp , Go , Python , JavaScript , Ruby ]
223228detectorsFor ExcessivePermissions = DetectedBy [Shell ]
224229detectorsFor PathTraversal = DetectedBy [Python , JavaScript , Ruby , Go , Java ]
225- detectorsFor HardcodedSecret = DetectedBy [Rust , C , Cpp , Go , Python , JavaScript , Ruby ]
226- detectorsFor UncheckedError = DetectedBy [Go , Rust , C , Cpp ]
230+ detectorsFor HardcodedSecret = DetectedBy [Rust , Cpp , Go , Python , JavaScript , Ruby ]
231+ detectorsFor UncheckedError = DetectedBy [Go , Rust , Cpp ]
227232detectorsFor InfiniteRecursion = DetectedBy [Haskell , PureScript , Scheme , Racket ]
228233detectorsFor UnsafeTypeCoercion = DetectedBy [OCaml , Haskell , DLang , Nim ]
229234detectorsFor ProofDrift = DetectedBy [Idris , Lean , Agda , Isabelle , Coq , Julia ]
0 commit comments