8ccda588c69be8ae0264ac0e854ecc8b75f85c56
rhstaggedabicall's N_DOT arm re-derived the field type via dotfieldtnode (a base-ident-only structlookup walk) then asked istaggedtype. The checker now stamps the field's resolved type on the N_DOT node itself (check.ww struct-field arm), so read src.type_ directly. typeistagged(nil) is false, preserving the old ft==nil bail. Polarity DOWN per rule 10: cstage's gate was already wide. cg_widen_tagged_ store reads src->type inline, NAMED-resolved, then tests TY_TAGGED (cmd/w6c/cgen.c:1302-1305) -- no standalone helper. Pre-trim wwstage's gate was NARROWER (dotfieldtnode required base==N_IDENT, firing only for `ident.field`); reading src.type_ also fires for chained-dot bases (`a.b.c`) since the checker stamps N_DOT.type_ at any depth. This aligns wwstage UP to cstage's existing coverage. Byte-id 990-997 green confirms the widened shape does not occur in bootstrap sources -- byte-id-neutral. Drops one dotfieldtnode caller; the *node-returning callers (typenodeprimresolved, indexvaluetnode, matchscrutt) stay until their consumers migrate to *tinfo (the closing dotfield* deletion follows once none need *node). First clean slice of that consumer migration; same g/h-style stamp read as #55/#56. Known pre-existing gap (filed, not introduced here): neither stage's chained-DOT read path has a tagged-union leaf branch, so a chained-dot tagged ABI source would store stale DX/CX/R8. Symmetric across stages (byte-id stays green); the retained `cgdot loads AX=tag, DX=word0, ...` comment is accurate only for ident.field bases. make test 133/133 (quiescent tree, byte-id 990-997 green).
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%