diff --git a/mypy/build.py b/mypy/build.py index 7c3f16704c5a..7fe59b351a6b 100644 --- a/mypy/build.py +++ b/mypy/build.py @@ -674,6 +674,7 @@ def __init__( if options.custom_typeshed_dir is not None: # Check if module lives under custom_typeshed_dir subtree custom_typeshed_dir = os.path.abspath(options.custom_typeshed_dir) + path = os.path.abspath(path) if os.path.commonpath((path, custom_typeshed_dir)) == custom_typeshed_dir: continue diff --git a/test-data/unit/cmdline.test b/test-data/unit/cmdline.test index ea1e9cba165a..97a9dcaa7410 100644 --- a/test-data/unit/cmdline.test +++ b/test-data/unit/cmdline.test @@ -1465,3 +1465,16 @@ sys.path = path mypy: "typing.py" shadows library module "typing" note: A user-defined top-level module with name "typing" is not supported == Return code: 2 + +[case testCustomTypeshedDirWithRelativePathDoesNotCrash] +# cmd: mypy --custom-typeshed-dir dir dir/typing.pyi +[file dir/stdlib/abc.pyi] +[file dir/stdlib/builtins.pyi] +[file dir/stdlib/sys.pyi] +[file dir/stdlib/types.pyi] +[file dir/stdlib/typing.pyi] +[file dir/stdlib/typing_extensions.pyi] +[file dir/stdlib/VERSIONS] +[out] +Failed to find builtin module mypy_extensions, perhaps typeshed is broken? +== Return code: 2