Analyzer::Scala::Scalatra
Inherits Analyzer::Scala::ScalaEngine < FileScanEngine < Analyzer < FileHelper < Reference < Object
Constants
Same rationale: replaces the three includes? calls gating the
class/object/trait declaration scan in single_mount_prefix.
Crystal recompiles an interpolated regex literal on every evaluation (a full PCRE2 JIT compile), and this matcher used to be rebuilt for every verb on every line — precompile the fixed set once at load time.
One precompiled Regex.union scan (PCRE2 JIT) replaces two separate
String#includes? scans of the same path -- Crystal's includes? is
not Boyer-Moore accelerated, so a single regex pass is cheaper than
two. Equivalent to the OR-of-substrings it replaces (union escapes
each literal).
Class methods
Instance methods
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.