blob: 768d6e65852e9e6cbcbdc83c44966420af424953 [file] [log] [blame]
"""Testing inconsistent returns involving typing.NoReturn annotations."""
# pylint: disable=missing-docstring, invalid-name
import sys
import typing
def parser_error(msg) -> typing.NoReturn: # pylint: disable=unused-argument
sys.exit(1)
def parser_error_nortype(msg): # pylint: disable=unused-argument
sys.exit(2)
from typing import NoReturn # pylint: disable=wrong-import-position
def parser_error_name(msg) -> NoReturn: # pylint: disable=unused-argument
sys.exit(3)
def bug_pylint_4122(s):
"""
Every returns is consistent because parser_error has type hints
indicating it never returns
"""
try:
n = int(s)
if n < 1:
raise ValueError()
return n
except ValueError:
parser_error('parser error')
def bug_pylint_4122_wrong(s): # [inconsistent-return-statements]
"""
Every returns is not consistent because parser_error_nortype has no type hints
"""
try:
n = int(s)
if n < 1:
raise ValueError()
return n
except ValueError:
parser_error_nortype('parser error')
def bug_pylint_4122_bis(s):
"""
Every returns is consistent because parser_error has type hints
indicating it never returns
"""
try:
n = int(s)
if n < 1:
raise ValueError()
return n
except ValueError:
parser_error_name('parser error')