applyClassNesting
Synthesises a class-level compound layer above the existing instruction → function nesting. For every function view whose demangled name contains a :: qualifier (e.g. harness::Entry::Execute()), this step:
Parses the qualified scope from the demangled name (drops the parameter list, splits on
::, joins the prefix —harness::Entry).Looks up or synthesises a single CodeClass entity per unique qualified scope.
Adds a CodeConstructView for each synthesised class to the vista (idempotent — duplicates are skipped).
Sets the function view's
parentConstructIdto its class's id, producing a three-level compound chainclass → function → instructionin cytoscape.
Operates strictly on the demangled string — no DWARF / LLVM-IR inspection. Free functions (no ::) stay unparented; templates, operators, and lambdas degrade to "everything before the last ::" which keeps the heuristic crude but readable.
Idempotent: if function views already have non-null parentConstructId (e.g. instruction-to-function links set by the loader are on instructions, not functions, so this is usually safe), they're left as-is.