Expand description
Which C++ callable is which: declaration/definition roles, the linkage
evidence that unifies a header declaration with its .cpp definition, and
the #1134 resolution-time identity reconciliation built on top of both.
Two things stay in analyzer/cpp/identity.rs on purpose:
cpp_header_body_files_are_relatedhere takes the implementation file’s#includelines and the include-target index as arguments. The analysis wrapper of the same name owns theresolve_analyzer::<CppAnalyzer>downcast that produces them, because the searchtools identity block reaches this predicate through&dyn IAnalyzerand there is no capability that carries anIncludeTargetIndex.- The moka cells that memoize
cpp_reconcile_candidatesper member identifier andcpp_reconcile_groupperCppReconcileGroupKeystay on the analyzer, as does every other cache, soIAnalyzer::updatekeeps rebuilding them wholesale.
Structs§
- CppOccurrence
Classifier - CppReconcile
Candidates - Every callable declaration in the workspace sharing one member identifier, bucketed by its terminal owner segment.
- CppReconcile
Group Key - Which candidates one reconcile group covers: a member identifier, and the terminal owner component that #1566’s pre-filter admits.
- CppReconciled
Definition Index - The #1134 resolution-time identity-reconciliation overlay for one queried
canonical
fq_name.
Enums§
Functions§
- cpp_
callable_ definitions_ share_ identity_ evidence - Whether
leftandrightare the same callable seen twice. - cpp_
callable_ unit_ role - cpp_
header_ body_ files_ are_ related - Direct include evidence relates one header declaration to one implementation file without pretending that every external name in a workspace belongs to one linker unit.
- cpp_
header_ body_ implementation_ file - Which of
left/rightthe include evidence would read as the header, if either. The analysis wrapper uses this to decide which file’s imports to read before paying for them. - cpp_
indexed_ callable_ linkage - cpp_
is_ constructor_ or_ destructor_ declarator_ name - Return whether
nodeis the declarator name of a constructor or destructor – the declaration occurrence itself, never a reference to one. - cpp_
is_ range_ for_ binding_ name - Return whether
nodeis one of the names declared by a range-for declarator. Follow only declarator fields. This keeps identifiers in array bounds and attributes in the range-for header as references. - cpp_
occurrence_ role_ for_ range - cpp_
reconcile_ candidates - Read and bucket every callable declaration sharing
member_identifier. - cpp_
reconcile_ group - Reconcile every candidate one group key admits, grouped by the canonical
fq_nameeach re-keyed definition belongs under. - cpp_
reconcile_ group_ key - Which member identifier and owner terminal a queried canonical name asks
about, or
Nonewhen the name has no terminal segment to probe with. - cpp_
source_ path_ is_ header