Commits

Victor Stinner committed c404f9d

Don't log removal of docstring

Comments (0)

Files changed (1)

astoptimizer/optimizer.py

     def info(self, message):
         self.config.info_func(message)
 
-    def log_node_removal(self, node, reason=None):
+    def log_node_removal(self, node, message="Remove dead code"):
         if self.filename:
             filename = self.filename
         else:
             filename = "<string>"
-        where = "%s:%s" % (filename, node.lineno)
-        text = ast.dump(node)
-        if len(text) > 100:
-            text = text[:100] + "..."
-        if reason:
-            where += ' (%s)' % reason
-        self.info("Remove dead code at %s: %s" % (where, text))
+        code = ast.dump(node)
+        if len(code) > 100:
+            code = code[:100] + "..."
+        self.info("%s:%s: %s: %s"
+                  % (filename, node.lineno, message, code))
 
     def warning(self, message):
         self.config.warning_func(message)
         if truncate == len(node_list) - 1:
             return
         for node in node_list[truncate+1:]:
-            self.log_node_removal(node, 'unreachable')
+            self.log_node_removal(node, 'Remove unreachable code')
         del node_list[truncate+1:]
 
     def optimize_node_list(self, node_list):
             if not isinstance(expr, obj_types):
                 return False
         if (index == 0
-        and not self.config.remove_docstring
         and isinstance(expr, ast.Str)):
-            return False
-        return True
+            if self.config.remove_docstring:
+                # remove docstring, but don't log removal
+                return (True, False)
+            else:
+                return False
+        return (True, True)
 
     def visit_expr_list(self, node_list, conditional=False):
         if self.config.remove_dead_code and len(node_list):
             new_node_list = []
             for index, node in enumerate(node_list):
-                if self._remove_node(index, node):
-                    self.log_node_removal(node)
+                remove_log = self._remove_node(index, node)
+                if remove_log:
+                    if remove_log[1]:
+                        self.log_node_removal(node)
                 else:
                     new_node_list.append(node)
             if not new_node_list: