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:

  1. Parses the qualified scope from the demangled name (drops the parameter list, splits on ::, joins the prefix — harness::Entry).

  2. Looks up or synthesises a single CodeClass entity per unique qualified scope.

  3. Adds a CodeConstructView for each synthesised class to the vista (idempotent — duplicates are skipped).

  4. Sets the function view's parentConstructId to its class's id, producing a three-level compound chain class → function → instruction in 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.

Generated with STIG