Expand description
The item tree (Playbook §3.1): a signature-level view of one .gd file — its
class_name, extends target, and class members (funcs/vars/consts/signals/enums/inner
classes) — lowered from the CST without reading any function body.
This “no bodies” rule is the Phase-3 cache invariant: editing a function body must not
change the item tree, so signature-derived data (and everything keyed on it) can be
reused across body edits once salsa lands. To keep that promise the tree holds only plain
owned data plus reparse-stable AstPtrs — never live CST nodes — so it is Eq and a
body edit that doesn’t move a declaration produces an identical tree.
Structs§
- Const
Item - A
constmember. - Enum
Item - An
enummember. - Func
Item - A
funcmember (signature only — the body is lowered lazily bycrate::body). - Inner
Class Item - An inner
classmember: its name plus its own (recursively lowered) item tree. - Item
Tree - The signature-level model of one file (or one inner class).
- Param
Item - A parameter of a function or signal.
- Signal
Item - A
signalmember. - VarItem
- A
varmember.
Enums§
- Extends
Ref - An
extendstarget. Phase 2 only resolves a bare engine-classExtendsRef::Name; the dotted and script-path forms funnel through the Phase-3 seam toTy::Unknown. - Member
- One class member.