diff --git a/Lib/test/test_clinic.py b/Lib/test/test_clinic.py index dd17d02519bfa7..84b6a193ecf914 100644 --- a/Lib/test/test_clinic.py +++ b/Lib/test/test_clinic.py @@ -1057,6 +1057,38 @@ def test_explicit_parameters_in_docstring(self): Okay, we're done here. """) + def test_docstring_with_comments(self): + function = self.parse_function(dedent(""" + module foo + foo.bar + x: int + # We're about to have + # the documentation for x. + Documentation for x. + # We've just had + # the documentation for x. + y: int + + # We're about to have + # the documentation for foo. + This is the documentation for foo. + # We've just had + # the documentation for foo. + + Okay, we're done here. + """)) + self.checkDocstring(function, """ + bar($module, /, x, y) + -- + + This is the documentation for foo. + + x + Documentation for x. + + Okay, we're done here. + """) + def test_parser_regression_special_character_in_parameter_column_of_docstring_first_line(self): function = self.parse_function(dedent(""" module os diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py index 917f1bfeb1d250..7fbae1e0d870ad 100755 --- a/Tools/clinic/clinic.py +++ b/Tools/clinic/clinic.py @@ -4685,9 +4685,7 @@ def state_modulename_name(self, line: str) -> None: # this line is permitted to start with whitespace. # we'll call this number of spaces F (for "function"). - if not self.valid_line(line): - return - + assert self.valid_line(line) self.indent.infer(line) # are we cloning?