diff --git a/bugbear.py b/bugbear.py index 78c2ca3..b8ecbd5 100644 --- a/bugbear.py +++ b/bugbear.py @@ -654,18 +654,15 @@ def check_for_b903(self, node): self.errors.append(B903(node.lineno, node.col_offset)) def check_for_b018(self, node): - for index, subnode in enumerate(node.body): + for subnode in node.body: if not isinstance(subnode, ast.Expr): continue - if index == 0 and isinstance(subnode.value, ast.Str): - continue # most likely a docstring if isinstance( subnode.value, ( ast.Num, ast.Bytes, ast.NameConstant, - ast.JoinedStr, ast.List, ast.Set, ast.Dict, diff --git a/tests/b018_classes.py b/tests/b018_classes.py index 551b14e..7992f15 100644 --- a/tests/b018_classes.py +++ b/tests/b018_classes.py @@ -1,6 +1,6 @@ """ Should emit: -B018 - on lines 16-26, 30, 33 +B018 - on lines 17-26, 30, 33 """ @@ -12,12 +12,12 @@ class Foo2: """abc""" a = 2 - "str" # Str + "str" # Str (no raise) + f"{int}" # JoinedStr (no raise) 1j # Number (complex) 1 # Number (int) 1.0 # Number (float) b"foo" # Binary - f"{int}" # JoinedStr True # NameConstant (True) False # NameConstant (False) None # NameConstant (None) diff --git a/tests/b018_functions.py b/tests/b018_functions.py index f8c3f77..763d6b8 100644 --- a/tests/b018_functions.py +++ b/tests/b018_functions.py @@ -1,6 +1,6 @@ """ Should emit: -B018 - on lines 15-25, 29, 32 +B018 - on lines 16-25, 29, 32 """ @@ -11,12 +11,12 @@ def foo1(): def foo2(): """my docstring""" a = 2 - "str" # Str + "str" # Str (no raise) + f"{int}" # JoinedStr (no raise) 1j # Number (complex) 1 # Number (int) 1.0 # Number (float) b"foo" # Binary - f"{int}" # JoinedStr True # NameConstant (True) False # NameConstant (False) None # NameConstant (None) diff --git a/tests/test_bugbear.py b/tests/test_bugbear.py index d1af992..d02b637 100644 --- a/tests/test_bugbear.py +++ b/tests/test_bugbear.py @@ -234,7 +234,7 @@ def test_b018_functions(self): bbc = BugBearChecker(filename=str(filename)) errors = list(bbc.run()) - expected = [B018(line, 4) for line in range(15, 26)] + expected = [B018(line, 4) for line in range(16, 26)] expected.append(B018(29, 4)) expected.append(B018(32, 4)) self.assertEqual(errors, self.errors(*expected)) @@ -244,7 +244,7 @@ def test_b018_classes(self): bbc = BugBearChecker(filename=str(filename)) errors = list(bbc.run()) - expected = [B018(line, 4) for line in range(16, 27)] + expected = [B018(line, 4) for line in range(17, 27)] expected.append(B018(30, 4)) expected.append(B018(33, 4)) self.assertEqual(errors, self.errors(*expected))