Skip to content

v0.53.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 23:30
· 26 commits to master since this release

The node you were handed is the node you get

The parser answered with the abstract node, and every reader reached for an
attribute that only one kind of node has. It worked, because a table pairs
each code with the shape of node it applies to. Nothing but the table said
so: get that pairing wrong and the first news of it is an AttributeError
somewhere down inside the analyser, a long way from the table that was wrong.

Every node carries where it came from. That was true of all of them except
the root, and it is written on the base class now rather than repeated
thirteen times and assumed; the root carries the position of the lattice
declaration it opens with. The parser answers the two declarations it names
instead of two base nodes. And the branches of the analyser and the lowering
now ask for the shape their code implies, through one helper that refuses by
naming both what it wanted and what it found - so the table's pairing is
checked at the place it is used instead of being discovered later by an
attribute that is not there.

That is the whole of it worth having. The remainder is saying out loud what
was already the case: the registry hands back a way to make an instruction
and how many operands that takes is the opcode's business rather than the
signature's, two tables keyed by a class admit to being keyed by a class, and
an interned marker declares the name it keeps rather than carrying a
suppression for it.

When ty was first pointed at this file it had sixty-one things to say. Three
releases ago that went to forty-one and three of its rules were set aside in
the workflow, with a note that narrowing the front end was the real fix and
was its own piece of work. This is that piece of work. It has nothing to
say now, and the workflow runs it with no rules set aside at all.

Full Changelog: v0.52.1...v0.53.0

LOC: 25150