]> git.madduck.net Git - etc/vim.git/blobdiff - black.py

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Fix missed cases in the `# type: ignore` logic (#1059)
[etc/vim.git] / black.py
index f283ffc99b3a50d1e6b225c0a93714c67247fd35..b8736e7b1d9360085674307b71318ef427d873ab 100644 (file)
--- a/black.py
+++ b/black.py
@@ -1321,7 +1321,7 @@ class Line:
                     if leaf_id not in ignored_ids or comment_seen:
                         return True
 
                     if leaf_id not in ignored_ids or comment_seen:
                         return True
 
-            comment_seen = True
+                comment_seen = True
 
         return False
 
 
         return False
 
@@ -1340,10 +1340,23 @@ class Line:
         # (unfortunately) need to check the actual source lines and
         # only report an unsplittable 'type: ignore' if this line was
         # one line in the original code.
         # (unfortunately) need to check the actual source lines and
         # only report an unsplittable 'type: ignore' if this line was
         # one line in the original code.
-        if self.leaves[0].lineno == self.leaves[-1].lineno:
-            for comment in self.comments.get(id(self.leaves[-1]), []):
-                if is_type_comment(comment, " ignore"):
-                    return True
+
+        # Like in the type comment check above, we need to skip a black added
+        # trailing comma or invisible paren, since it will be the original leaf
+        # before it that has the original line number.
+        last_idx = -1
+        last_leaf = self.leaves[-1]
+        if len(self.leaves) > 2 and (
+            last_leaf.type == token.COMMA
+            or (last_leaf.type == token.RPAR and not last_leaf.value)
+        ):
+            last_idx = -2
+
+        if self.leaves[0].lineno == self.leaves[last_idx].lineno:
+            for node in self.leaves[last_idx:]:
+                for comment in self.comments.get(id(node), []):
+                    if is_type_comment(comment, " ignore"):
+                        return True
 
         return False
 
 
         return False