CodeConstructView
The view of a single CodeConstruct inside a Vista.
Used for analyzer-level entities (functions, instructions, files, namespaces, classes) that are not tied to a spec-level Element but still appear in the diagram. Detailed instruction-level views use these heavily; summarized views typically don't.
If the construct corresponds to a code site of a user-defined Element, ownerElementId carries that link — the diagram can then visually group (parent-of-compound-node) the constructs under their owning element.
metrics holds McCabe complexity / nesting / lines when this view wraps a function; for other kinds it stays null.
Constructors
Properties
Diagram-specific ASIL override. Set by the data-flow propagator on non-boundary nodes that inherit (the min of) their predecessors' ASILs. The wrapped construct's own asil stays unchanged; the exporters use this as the propagated ASIL for legacy/summary views.
Logical analyzer endpoint identity for an IR call instruction. The analyzer can emit many physical call sites for one configured source or sink symbol; summarized diagrams use this identity to project those call sites to one role-specific endpoint node. Detailed diagrams continue to render the physical construct unchanged.
Native evidence origins retained through presentation-only graph compaction.
Structured version of instructionLabels for rich tooltips. Segment diagrams use this to list each member IR with source location, source URL, function, and segment membership instead of flattening everything into one string.
For a grouped source-line / segment view: the display labels of the IR instructions represented by this node. Empty for normal IR-level views.
Diagram-scoped endpoint projection. These flags mean "source/sink in this generated diagram", not "some harness source/sink exists at this code site". Grouped views such as data-flow segments set them only when a represented instruction is part of the diagram's selected endpoint set.
Construct-side compound-node parent for renderers that support compound nodes (cytoscape's data.parent). Set by the loader on CodeInstruction views to the id of their enclosing CodeFunction view's construct, so instructions render as children of the function box. SVG / sigma renderers ignore this field — they don't support compound nodes natively.
Weakest ASIL taint that reaches this view in the current data-flow diagram. Unlike asilOverride, this is also set on source/sink boundaries, where the wrapped construct's own ASIL remains the nominal endpoint classification. Renderers use nominal ASIL for fill and propagated ASIL for border.
Per-sink data-flow DAG segment IDs that contain this instruction. A single IR instruction can appear in many segments, so segments are metadata rather than strict parent nodes in the IR-level diagram.
Per-segment position of this instruction inside the analyzer segment payload. This preserves segment tooltip ordering without inventing IR-level data-flow edges between member instructions.
Source/sink/fact provenance for a compacted data-flow presentation node. Empty for ordinary code-construct views. Segment aliases remain in segmentIds; these fields preserve which configured analysis endpoints and analyzer facts contributed to the compacted node.
Source text read from the construct's source file/line. This is tooltip metadata for IR nodes; it must not replace the IR node label.
URL into the configured code-browser (GitHub / GitLab) for the construct's source location — <remote>/blob/<commit>/<path>#L<line>. Computed by Enrichment.applySourceUrls when the diagrams task has git provenance available; null otherwise (renderers degrade to a non-clickable node).