Fixed an issue in ast_unparse.

Sat, 17 Apr 2021 18:45:04 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 17 Apr 2021 18:45:04 +0200
changeset 8252
70855a87f546
parent 8250
4d65b3ec1d31
child 8253
40cf9093ef45

Fixed an issue in ast_unparse.

eric6/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/ast_unparse.py file | annotate | diff | comparison | revisions
--- a/eric6/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/ast_unparse.py	Sat Apr 17 16:51:19 2021 +0200
+++ b/eric6/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/ast_unparse.py	Sat Apr 17 18:45:04 2021 +0200
@@ -15,6 +15,8 @@
 from enum import IntEnum, auto
 from contextlib import contextmanager, nullcontext
 
+import AstUtilities
+
 # Large float and imaginary literals get turned into infinities in the AST.
 # We unparse those infinities to INFSTR.
 _INFSTR = "1e" + repr(sys.float_info.max_10_exp + 1)
@@ -598,16 +600,22 @@
             self.write(repr(value))
 
     def visit_Constant(self, node):
-        value = node.value
+        value = AstUtilities.getValue(node)
         if isinstance(value, tuple):
             with self.delimit("(", ")"):
                 self.items_view(self._write_constant, value)
         elif value is ...:
             self.write("...")
         else:
-            if node.kind == "u":
+            if hasattr(node, "kind") and node.kind == "u":
                 self.write("u")
-            self._write_constant(node.value)
+            self._write_constant(value)
+    
+    visit_NameConstant = visit_Constant
+    visit_Num = visit_Constant
+    visit_Str = visit_Constant
+    visit_Bytes = visit_Constant
+    visit_Ellipsis = visit_Constant
 
     def visit_List(self, node):
         with self.delimit("[", "]"):

eric ide

mercurial