@@ -429,6 +429,59 @@ def test_infer_sig_from_docstring_square_brackets(self) -> None:
429429 == []
430430 )
431431
432+ def test_infer_sig_from_docstring_unterminated_string_literal (self ) -> None :
433+ docstring = """
434+ func(*args, **kwargs)
435+ Overloaded function.
436+
437+ 1. func(x: int) -> None
438+
439+ This is a valid docstring with an "unterminated string literal.
440+
441+ 2. func(x: int, y: int) -> str
442+
443+ This is an overloaded method.
444+ """
445+ sigs = infer_sig_from_docstring (docstring , name = "func" )
446+ assert_equal (
447+ sigs [0 ], FunctionSig (name = "func" , args = [ArgSig (name = "x" , type = "int" )], ret_type = "None" )
448+ )
449+ assert_equal (
450+ sigs [1 ],
451+ FunctionSig (
452+ name = "func" ,
453+ args = [ArgSig (name = "x" , type = "int" ), ArgSig (name = "y" , type = "int" )],
454+ ret_type = "str" ,
455+ ),
456+ )
457+
458+ def test_infer_sig_from_docstring_latex (self ) -> None :
459+ docstring = """
460+ func(*args, **kwargs)
461+ Overloaded function.
462+
463+ 1. func(x: int) -> None
464+
465+ .. math::
466+ \\ mathbf{f}\\ left(x\\ right) = \\ pi \\ cdot x
467+
468+ 2. func(x: int, y: int) -> str
469+
470+ This is an overloaded method.
471+ """
472+ sigs = infer_sig_from_docstring (docstring , name = "func" )
473+ assert_equal (
474+ sigs [0 ], FunctionSig (name = "func" , args = [ArgSig (name = "x" , type = "int" )], ret_type = "None" )
475+ )
476+ assert_equal (
477+ sigs [1 ],
478+ FunctionSig (
479+ name = "func" ,
480+ args = [ArgSig (name = "x" , type = "int" ), ArgSig (name = "y" , type = "int" )],
481+ ret_type = "str" ,
482+ ),
483+ )
484+
432485 def test_remove_misplaced_type_comments_1 (self ) -> None :
433486 good = """
434487 \u1234
0 commit comments