Why template-argument resolution failed. Definition diagnostics render
each mode differently; graph scans only care that the resolution is
unproven and match Err(_).
Resolve an anonymous C aggregate’s generated owner from its declaration
range. Anonymous local structs and unions have no type name to enter into
the visibility index; declaration extraction gives them a structured class
identity keyed by the aggregate node’s exact CST range instead. Matching
that range keeps nested aggregates and unrelated generated owners out of
the result without inspecting source text.
The argument list a call-shaped node supplies: f(args), new T(args),
T{args} and the member initializer : field(args), whose grammar gives its
argument list no field name.
Whether one indexed alias declaration names a function or function-pointer
type. The alias name is matched through the declarator field so a function
type used by a parameter cannot be mistaken for the alias itself.
Whether one indexed field declaration is a function or function-pointer
value. This follows tree-sitter declarator fields and never infers
callability from source spelling.
Whether a structured using-declaration scope can name qualified as an
ancestor class. The boundary check prevents Base from matching
OtherBase while allowing a relative Base spelling to match ns::Base.
Whether node is the member leaf of an offsetof_expression, including a
malformed type operand. Callers use this guard to prevent the ordinary
field-name heuristics from guessing an owner after structured resolution
has failed.
Whether node is the direct structured type payload of a template
argument. This role remains meaningful even when a surrounding expression
is below tree-sitter recovery, because both the template_argument_list
and the type_descriptor retain their named fields.
The byte range of the #if/#elif/#else chain that encloses the smallest
node covering [start_byte, end_byte), or None when nothing there is
conditional.
True when each structured qualifier on the callable-name path has a real
:: token. A macro-prefixed return type can make tree-sitter insert a
zero-width missing separator and parse TYPE Result<T> method() as the
false qualified declarator Result<T>::method.
Return the declaration/function type displaced by a macro-shaped
qualified declarator, together with the enclosing declaration context.
Callers use the macro scope only as structural admission evidence; the
returned node is the real type reference to resolve and record.
Like precise_parent_of, but drops module (namespace) parents. A namespace is a scope, not a
type or receiver, so namespace-scoped functions and constants resolve as free functions and
globals rather than members.