Branch ast-stage-c. Suite 178/178; self-hosting fixpoint OK
(3,032,308 bytes; slice 10 was 3,027,925).
NkImport nodes. Import builds a node whose child 0 is the
FROM module (NkIdent) and whose following children are the imported
names; a plain IMPORT collects the module names as children.
ImpList/ImpName/ImpModList take the node as a parameter and append
to it. The module-level astImp/astImpTail accumulator collects the
imports of a unit; each NkUnit stores them as child 3.
AST.IsLeafKind no longer lists NkImport, so a tree walk recurses into
its NkIdent children instead of mis-reading child 0 as a text index.
AST.Dump, then removed)FROM TestIO IMPORT WriteString, WriteLn;
gave NkUnit(impdump, decls, body, imports=NkDeclSeq[
NkImport(NkIdent TestIO, NkIdent WriteString, NkIdent WriteLn) ]).
CLASS / CLASS IMPLEMENTATION items and nested modules in the unit
AST.Lower + .ssa byte-compare.MaxChild cap still applies to CASE arms, WITH designators and
call actuals.CLASS/nested modules (or move to Lower).