Skip to content

phase0/05: store-backed lvalues/labels; drop ast→SA link - #84

Merged
rieske merged 8 commits into
masterfrom
phase0/05-annotation-migration
Jul 27, 2026
Merged

phase0/05: store-backed lvalues/labels; drop ast→SA link#84
rieske merged 8 commits into
masterfrom
phase0/05-annotation-migration

Conversation

@rieske

@rieske rieske commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • AnnotationStore-backed lvalues and labels; remove ast→SA link.
  • Includes post-master multi-decl merge fix for setHolder.
  • Round-2 through Round-4 annotation residuals.

Stack

Base: phase0/04-symbols-leaf → this PR → phase0/06-package-graph

Test plan

  • SA/annotation tests pass
  • Verify multi-decl path after master rebase remains correct

rieske added 7 commits July 27, 2026 17:18
Move production address temps (ValueSlot::Lvalue) and control-flow labels
(LabelSlot) fully onto AnnotationStore. AST nodes no longer hold LabelEntry
or lvalue fields; SA writes and CG reads go through the store.

Move LoggingSyntaxTreeVisitor / VerboseSyntaxTreeBuilder to driver (they
need SemanticXmlOutputVisitor). ast now links only parser, types, and
symbols - the host-aligned layering contract from the spike.
- Single lvalue API (setLvalueSymbol/getLvalueSymbol); drop dual names
  and identity overrides on ArrayAccess/MemberAccess/UnaryExpression.
- SwitchStatement caseTemp on AnnotationStore (ValueSlot::CaseTemp).
- Move LoggingSyntaxTreeVisitor / VerboseSyntaxTreeBuilder to
  namespace driver (physical package + namespace agree).
- Header formatting after field removal; Lvalue comment production status.
- Drop ArrayAccess.elementSize; CG uses IndexPlan.elementSize only.
- Member FieldAddress always uses Lvalue store name (no addressTemp dual).
- PreOperation and Holder on AnnotationStore with convenience helpers.
- CaseTemp convenience on store; unit tests for CaseTemp/PreOp/Holder.
- Remove dead DirectDeclarator holder; non-virtual getLvalueSymbol;
  drop empty private sections.
- Drop FieldPlan/IndexPlan.addressTempName; Lvalue is sole address temp.
- Remove empty private: sections left after label field removal.
- Update AnnotationStore tests for plan field removal.
- Drop FunctionDesignatorPlan.addressTempName; CG uses Result as address temp.
- Unify missing-slot getters to soft nullptr (Holder, PreOperation); assert at
  CG entry after successful SA.
- Document FunctionDefinition frame residual and small node SA fields as
  intentional defer / optional later store migration.
Plan holds functionName only; address temp is the Result symbol.
Master's analyzeInitializedDeclarator must pass annotations() now that
holders live only on the store (annotation-migration contract).
@mergify

mergify Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@coveralls

coveralls commented Jul 27, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 92.931% (+0.001%) from 92.93% — phase0/05-annotation-migration into master

Base automatically changed from phase0/04-symbols-leaf to master July 27, 2026 16:06
@rieske
rieske merged commit 5aa31d8 into master Jul 27, 2026
4 checks passed
@rieske
rieske deleted the phase0/05-annotation-migration branch July 27, 2026 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants