Analyzer::Go::GoZero
Inherits Analyzer::Go::GoEngine < Analyzer < FileHelper < Reference < Object
Constants
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.
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.