← board

A local bound to a container literal is a class site

Found by the lekkerzeilen seat (2026-09-16) while confirming that a field bound to [] gives a parameter a TPyList claim: _adopt(verts, ...)'s three sites all pass a local bound once to [], and annotating it by hand took the function from 2898 to 1167 B. PyStaticReceiverClass's once-bound-local arm recognised only a construction Cls(...); it now also takes a list or dict literal that is the whole statement (PyDictLiteralAt tells a dict from a set; a set literal is left alone), naming the runtime class. Every other rule is unchanged: a second binding, an augmented step, a for/as/global binding, or a disagreeing site still vetoes.

A claim is a bet (the seat's observation across three arms, recorded here because this lever is where it was sharpest): the same TPyList claim made _adopt 60% smaller and _push 64% larger on the same binary, and nothing available before codegen predicts the direction. The full-map diff is the standing instrument; the census only says which claims moved.

Log