summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2023-12-13 13:20:00 -0800
committerEli Schwartz <eschwartz93@gmail.com>2024-01-08 19:33:05 -0500
commit5cd11473540a4f7948daaa3268815c7f79c60cfb (patch)
tree1e51b8e0460d9b6a5049dd6e770fc7db6a1d6148
parent7700618181249ec02ebe774d9c276d1c343b5dce (diff)
downloadmeson-5cd11473540a4f7948daaa3268815c7f79c60cfb.tar.gz
ast/printer: fix mypy issues
Other than one case that I think cannot be actually hit (or it would fail).
-rw-r--r--mesonbuild/ast/printer.py18
-rw-r--r--mesonbuild/ast/visitor.py4
-rwxr-xr-xrun_mypy.py1
3 files changed, 13 insertions, 10 deletions
diff --git a/mesonbuild/ast/printer.py b/mesonbuild/ast/printer.py
index bbaca35d9..459912f2d 100644
--- a/mesonbuild/ast/printer.py
+++ b/mesonbuild/ast/printer.py
@@ -65,8 +65,9 @@ class AstPrinter(AstVisitor):
node.lineno = self.curr_line or node.lineno
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:
assert isinstance(node.value, str)
@@ -78,7 +79,7 @@ class AstPrinter(AstVisitor):
self.append("f'" + self.escape(node.value) + "'", node)
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)
self.append("'''" + node.value + "'''", node)
node.lineno = self.curr_line or node.lineno
@@ -241,21 +242,22 @@ class AstPrinter(AstVisitor):
class RawPrinter(AstVisitor):
- def __init__(self):
+ def __init__(self) -> None:
self.result = ''
- def visit_default_func(self, node: mparser.BaseNode):
- self.result += node.value
+ def visit_default_func(self, node: mparser.BaseNode) -> None:
+ # XXX: this seems like it could never actually be reached...
+ self.result += node.value # type: ignore[attr-defined]
if node.whitespaces:
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.value.accept(self)
if node.whitespaces:
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.operator.accept(self)
node.right.accept(self)
diff --git a/mesonbuild/ast/visitor.py b/mesonbuild/ast/visitor.py
index 2b5cea674..60aca61f9 100644
--- a/mesonbuild/ast/visitor.py
+++ b/mesonbuild/ast/visitor.py
@@ -32,7 +32,7 @@ class AstVisitor:
def visit_FormatStringNode(self, node: mparser.FormatStringNode) -> None:
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)
def visit_FormatMultilineStringNode(self, node: mparser.FormatStringNode) -> None:
@@ -138,7 +138,7 @@ class AstVisitor:
node.condition.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)
node.block.accept(self)
diff --git a/run_mypy.py b/run_mypy.py
index 067080b9a..c3f391997 100755
--- a/run_mypy.py
+++ b/run_mypy.py
@@ -24,6 +24,7 @@ modules = [
'mesonbuild/wrap/',
# specific files
+ 'mesonbuild/ast/printer.py',
'mesonbuild/arglist.py',
'mesonbuild/backend/backends.py',
'mesonbuild/backend/nonebackend.py',