Repository navigation
Extraction hardening: go #817
Copy link
Copy link
Closed
Labels
core-engineModifications to the central physics and parsing engineModifications to the central physics and parsing enginetestingUnit, integration, and E2E pipeline verificationUnit, integration, and E2E pipeline verification
Description
Part of the extraction-hardening epic (#813). See
tests/extraction/how_to_harden_extraction.md
for the full methodology this issue follows.
Language: go
Known finding to fix first
func_start doesn't recognize Go 1.18+ generics at all (e.g. func Foo[T constraints.Ordered](a, b T) T {) -- mainstream, ~5-year-old Go syntax currently invisible to the engine. The regex captures the name then goes straight to [ \\t\\n]*\\( with no allowance for a [...] type-parameter list in between.
Rules in scope (non-None in LANGUAGE_DEFINITIONS["go"]["rules"]):
- func_start
- args
- class_start
- _dependency_capture
Checklist (per the methodology doc, for each in-scope rule above)
-
valid: modern idiom + legacy/historical syntax eras + testing-framework-shaped functions -
invalid: string-literal lookalikes, type-level lookalikes, assignment-in-condition, macro-expansion lookalikes, and any language-specific lookalike shape -
pathological: 10-15 cases covering annotation/attribute stacking, nested generics/templates, destructured/complex params, multi-line splits at every plausible boundary - Every case empirically verified against the real compiled regex before being added
- Any genuine bug found is fixed (full ReDoS/lint/type/crucible discipline) or filed separately if it's a multi-language architectural fix
- Migrated out of the four old monolithic dict files into
tests/extraction/languages/test_go.py - Epic updated with any new recurring-bug-class findings before closing this issue
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
core-engineModifications to the central physics and parsing engineModifications to the central physics and parsing enginetestingUnit, integration, and E2E pipeline verificationUnit, integration, and E2E pipeline verification
Activity
Fix squid-protocol#817: Extraction hardening for go (epic squid-proto…