Analyzer::Go::GoZero
Inherits Analyzer::Go::GoEngine < Analyzer::Go::GoTestPath < Analyzer < FileHelper < Reference < Object
Constants
A .api type body: DetailReq { ... } inside type (...), or type SearchReq {...}.
One precompiled matcher instead of a String#includes? scan per
.go file: includes? runs Rabin-Karp over the whole buffer and
the marker is absent in the overwhelming majority of files in a
polyglot repo, so every one of them pays the full scan. See
Analyzer#content_matches?.
Crystal recompiles an interpolated regex literal on every evaluation (a full PCRE2 JIT compile). The accessor set is fixed, so precompile the per-accessor matchers once at load time.
httpx.Parse(r, &req) and its ParseJsonBody / ParseForm / ParsePath / ParseHeaders siblings.
Class methods
Instance methods
Type the param by the actual accessor name. The previous
version always returned "query" regardless of accessor, so
r.PathParam("id") and r.GetHeader("X-Token") surfaced as
query params — a mis-classification that broke downstream
consumers (auth taggers, OpenAPI export) that key off
param_type.
Instance-side view of the same declaration. The per-file rescues live on
this base class, which has no way to name the analyzer that is running
inside them, so a skipped file could not be attributed to a tech.
Deriving it from analyzer_for keeps the name written exactly once.