iter 22b.1.1: ClassDef/InstanceDef AST + downstream match arms
Adds Def::Class(ClassDef) and Def::Instance(InstanceDef) variants per Decision 11 §"Form-A schema". All optional fields (superclass, doc, default body) carry skip_serializing_if so canonical-JSON bytes of pre-22b fixtures stay bit-identical. Downstream match-on-Def sites are extended with explicit Class/Instance arms. Behaviour for 22b.1 is placeholder (skip in typecheck/codegen, one-line summary in pretty/manifest, placeholder marker in prose/print) with TODO comments naming the deferred sub-iters (22b.2 typecheck, 22b.3 codegen, 22b.4 prose-projection arms).
This commit is contained in:
@@ -272,6 +272,14 @@ fn spec_mentions_every_def_kind() {
|
||||
Def::Fn(_) => "fn",
|
||||
Def::Const(_) => "const",
|
||||
Def::Type(_) => "type",
|
||||
// Iter 22b.1: class/instance Def variants exist but are
|
||||
// not yet anchored in the prose-spec block. Once 22b.4
|
||||
// adds prose projection for them, the FORM_A_SPEC text
|
||||
// gains `(class ` / `(instance ` anchors and this match
|
||||
// will be exercised. For 22b.1 the exemplars list above
|
||||
// does not produce these variants.
|
||||
Def::Class(_) => "class",
|
||||
Def::Instance(_) => "instance",
|
||||
};
|
||||
assert!(
|
||||
FORM_A_SPEC.contains(anchor),
|
||||
|
||||
Reference in New Issue
Block a user