From bec84aced51f2dbc21a889f0d7c1869a4bbf6f5d Mon Sep 17 00:00:00 2001 From: Charles Brunet Date: Tue, 26 Sep 2023 09:18:01 -0400 Subject: [PATCH] Fix type checking in ast.printer - Wrong types were used for MultilineStringNode and FormatMultilineStringNode - Simplify the `escape` method to avoid use of T.Cast --- mesonbuild/ast/printer.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mesonbuild/ast/printer.py b/mesonbuild/ast/printer.py index 06b05ba89..e2191f9b7 100644 --- a/mesonbuild/ast/printer.py +++ b/mesonbuild/ast/printer.py @@ -65,9 +65,7 @@ class AstPrinter(AstVisitor): node.lineno = self.curr_line or node.lineno def escape(self, val: str) -> str: - return val.translate(str.maketrans(T.cast( - 'T.Dict[str, T.Union[str, int]]', - {'\'': '\\\'', '\\': '\\\\'}))) + return val.replace('\\', '\\\\').replace("'", "\'") def visit_StringNode(self, node: mparser.StringNode) -> None: assert isinstance(node.value, str) @@ -79,12 +77,12 @@ 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.MultilineFormatStringNode) -> None: + def visit_MultilineStringNode(self, node: mparser.MultilineStringNode) -> None: assert isinstance(node.value, str) self.append("'''" + node.value + "'''", node) node.lineno = self.curr_line or node.lineno - def visit_FormatMultilineStringNode(self, node: mparser.FormatStringNode) -> None: + def visit_FormatMultilineStringNode(self, node: mparser.MultilineFormatStringNode) -> None: assert isinstance(node.value, str) self.append("f'''" + node.value + "'''", node) node.lineno = self.curr_line or node.lineno