GH-122155: Fix cases generator to correctly compute 'peek' offset for error handling by markshannon · Pull Request #122158 · python/cpython
def copy(self) -> "StackOffset": return StackOffset(self.popped[:], self.pushed[:])
def pop(self, item: StackItem) -> None: self.popped.append(var_size(item))
def pop(self, var: StackItem, extract_bits: bool = False) -> str: self.top_offset.pop(var) if not var.peek: self.peek_offset.pop(var) indirect = "&" if var.is_array() else "" if self.variables: popped = self.variables.pop()
def peek_offset(self) -> str: peek = self.base_offset.copy() for var in self.variables: if not var.peek: break peek.push(var) return peek.to_c()
def as_comment(self) -> str: return f"/* Variables: {[v.name for v in self.variables]}. Base offset: {self.base_offset.to_c()}. Top offset: {self.top_offset.to_c()} */"