ast/printer: fix mypy issues

Other than one case that I think cannot be actually hit (or it would
fail).
pull/12683/head
Dylan Baker 1 year ago committed by Eli Schwartz
parent 7700618181
commit 5cd1147354
  1. 18
      mesonbuild/ast/printer.py
  2. 4
      mesonbuild/ast/visitor.py
  3. 1
      run_mypy.py

@ -65,8 +65,9 @@ class AstPrinter(AstVisitor):
node.lineno = self.curr_line or node.lineno node.lineno = self.curr_line or node.lineno
def escape(self, val: str) -> str: def escape(self, val: str) -> str:
return val.translate(str.maketrans({'\'': '\\\'', return val.translate(str.maketrans(T.cast(
'\\': '\\\\'})) 'T.Dict[str, T.Union[str, int]]',
{'\'': '\\\'', '\\': '\\\\'})))
def visit_StringNode(self, node: mparser.StringNode) -> None: def visit_StringNode(self, node: mparser.StringNode) -> None:
assert isinstance(node.value, str) assert isinstance(node.value, str)
@ -78,7 +79,7 @@ class AstPrinter(AstVisitor):
self.append("f'" + self.escape(node.value) + "'", node) self.append("f'" + self.escape(node.value) + "'", node)
node.lineno = self.curr_line or node.lineno node.lineno = self.curr_line or node.lineno
def visit_MultilineStringNode(self, node: mparser.StringNode) -> None: def visit_MultilineStringNode(self, node: mparser.MultilineFormatStringNode) -> None:
assert isinstance(node.value, str) assert isinstance(node.value, str)
self.append("'''" + node.value + "'''", node) self.append("'''" + node.value + "'''", node)
node.lineno = self.curr_line or node.lineno node.lineno = self.curr_line or node.lineno
@ -241,21 +242,22 @@ class AstPrinter(AstVisitor):
class RawPrinter(AstVisitor): class RawPrinter(AstVisitor):
def __init__(self): def __init__(self) -> None:
self.result = '' self.result = ''
def visit_default_func(self, node: mparser.BaseNode): def visit_default_func(self, node: mparser.BaseNode) -> None:
self.result += node.value # XXX: this seems like it could never actually be reached...
self.result += node.value # type: ignore[attr-defined]
if node.whitespaces: if node.whitespaces:
node.whitespaces.accept(self) node.whitespaces.accept(self)
def visit_unary_operator(self, node: mparser.UnaryOperatorNode): def visit_unary_operator(self, node: mparser.UnaryOperatorNode) -> None:
node.operator.accept(self) node.operator.accept(self)
node.value.accept(self) node.value.accept(self)
if node.whitespaces: if node.whitespaces:
node.whitespaces.accept(self) node.whitespaces.accept(self)
def visit_binary_operator(self, node: mparser.BinaryOperatorNode): def visit_binary_operator(self, node: mparser.BinaryOperatorNode) -> None:
node.left.accept(self) node.left.accept(self)
node.operator.accept(self) node.operator.accept(self)
node.right.accept(self) node.right.accept(self)

@ -32,7 +32,7 @@ class AstVisitor:
def visit_FormatStringNode(self, node: mparser.FormatStringNode) -> None: def visit_FormatStringNode(self, node: mparser.FormatStringNode) -> None:
self.visit_default_func(node) self.visit_default_func(node)
def visit_MultilineStringNode(self, node: mparser.StringNode) -> None: def visit_MultilineStringNode(self, node: mparser.MultilineFormatStringNode) -> None:
self.visit_default_func(node) self.visit_default_func(node)
def visit_FormatMultilineStringNode(self, node: mparser.FormatStringNode) -> None: def visit_FormatMultilineStringNode(self, node: mparser.FormatStringNode) -> None:
@ -138,7 +138,7 @@ class AstVisitor:
node.condition.accept(self) node.condition.accept(self)
node.block.accept(self) node.block.accept(self)
def visit_ElseNode(self, node: mparser.IfNode) -> None: def visit_ElseNode(self, node: mparser.ElseNode) -> None:
self.visit_default_func(node) self.visit_default_func(node)
node.block.accept(self) node.block.accept(self)

@ -24,6 +24,7 @@ modules = [
'mesonbuild/wrap/', 'mesonbuild/wrap/',
# specific files # specific files
'mesonbuild/ast/printer.py',
'mesonbuild/arglist.py', 'mesonbuild/arglist.py',
'mesonbuild/backend/backends.py', 'mesonbuild/backend/backends.py',
'mesonbuild/backend/nonebackend.py', 'mesonbuild/backend/nonebackend.py',

Loading…
Cancel
Save