gh-105481: Fix types and a bug for pseudos (#105788)

This commit is contained in:
Guido van Rossum 2023-06-14 10:06:50 -07:00 committed by GitHub
parent 74c2422fa2
commit d50930a6a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -510,7 +510,7 @@ class OverriddenInstructionPlaceHolder:
name: str
AnyInstruction = Instruction | MacroInstruction
AnyInstruction = Instruction | MacroInstruction | PseudoInstruction
INSTR_FMT_PREFIX = "INSTR_FMT_"
INSTR_FLAG_SUFFIX = "_FLAG"
@ -550,6 +550,7 @@ class Analyzer:
macros: dict[str, parser.Macro]
macro_instrs: dict[str, MacroInstruction]
families: dict[str, parser.Family]
pseudos: dict[str, parser.Pseudo]
pseudo_instrs: dict[str, PseudoInstruction]
def parse(self) -> None:
@ -607,7 +608,7 @@ class Analyzer:
# Parse from start
psr.setpos(start)
thing: parser.InstDef | parser.Macro | parser.Family | None
thing: parser.InstDef | parser.Macro | parser.Pseudo | parser.Family | None
thing_first_token = psr.peek()
while thing := psr.definition():
if ws := [w for w in RESERVED_WORDS if variable_used(thing, w)]:
@ -927,7 +928,7 @@ class Analyzer:
popped = str(-low)
pushed = str(sp - low)
case parser.Pseudo():
instr = self.pseudos[thing.name]
instr = self.pseudo_instrs[thing.name]
popped = pushed = None
# Calculate stack effect, and check that it's the the same
# for all targets.