From f09b6239add1ff9ea9684c536abc70796f04cc33 Mon Sep 17 00:00:00 2001 From: Petr Date: Thu, 3 Apr 2025 19:19:00 +0200 Subject: [PATCH] PY-76824 Conformance test failure: directives_no_type_check.py (cherry picked from commit d823c6dbc51959ec1d534814972b3323be8361cb) GitOrigin-RevId: 2672df0698539b78d261e8667920072d2f921af7 --- .../typing/PyTypingTypeProvider.java | 3 ++- .../python/psi/PyKnownDecorator.java | 2 ++ .../python/psi/PyStdKnownDecoratorProvider.kt | 2 ++ .../typing/conformance/tests/_ignored.txt | 1 - .../Py3ArgumentListInspectionTest.java | 25 +++++++++++++++++++ 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java index 4a1c10e06e32..516ccb943cb6 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java +++ b/python/python-psi-impl/src/com/jetbrains/python/codeInsight/typing/PyTypingTypeProvider.java @@ -201,7 +201,8 @@ public static final String CONTEXT_MANAGER = "contextlib.AbstractContextManager" .add(TUPLE) .add(CALLABLE) .add(TYPE) - .add("typing.no_type_check") + .add(PyKnownDecorator.TYPING_NO_TYPE_CHECK.getQualifiedName().toString()) + .add(PyKnownDecorator.TYPING_NO_TYPE_CHECK_EXT.getQualifiedName().toString()) .add(UNION) .add(OPTIONAL) .add(LIST) diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/PyKnownDecorator.java b/python/python-psi-impl/src/com/jetbrains/python/psi/PyKnownDecorator.java index 9a0a267f3356..664fbe9be39d 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/PyKnownDecorator.java +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/PyKnownDecorator.java @@ -129,6 +129,8 @@ public class PyKnownDecorator { public final static PyKnownDecorator TYPING_FINAL = new PyKnownDecorator("typing.final"); public final static PyKnownDecorator TYPING_FINAL_EXT = new PyKnownDecorator("typing_extensions.final"); public final static PyKnownDecorator TYPING_DEPRECATED = new PyKnownDecorator("typing_extensions.deprecated"); + public final static PyKnownDecorator TYPING_NO_TYPE_CHECK = new PyKnownDecorator("typing.no_type_check"); + public final static PyKnownDecorator TYPING_NO_TYPE_CHECK_EXT = new PyKnownDecorator("typing_extensions.no_type_check"); public final static PyKnownDecorator WARNING_DEPRECATED = new PyKnownDecorator("warnings.deprecated"); diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/PyStdKnownDecoratorProvider.kt b/python/python-psi-impl/src/com/jetbrains/python/psi/PyStdKnownDecoratorProvider.kt index 6a9b9f3ce29a..e0127eb007f7 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/PyStdKnownDecoratorProvider.kt +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/PyStdKnownDecoratorProvider.kt @@ -33,6 +33,8 @@ class PyStdKnownDecoratorProvider : PyKnownDecoratorProvider { PyKnownDecorator.TYPING_FINAL, PyKnownDecorator.TYPING_FINAL_EXT, PyKnownDecorator.TYPING_DEPRECATED, + PyKnownDecorator.TYPING_NO_TYPE_CHECK, + PyKnownDecorator.TYPING_NO_TYPE_CHECK_EXT, PyKnownDecorator.WARNING_DEPRECATED, PyKnownDecorator.REPRLIB_RECURSIVE_REPR, PyKnownDecorator.PYRAMID_DECORATOR_REIFY, diff --git a/python/testData/typing/conformance/tests/_ignored.txt b/python/testData/typing/conformance/tests/_ignored.txt index 087e677256e2..61f63aa0199d 100644 --- a/python/testData/typing/conformance/tests/_ignored.txt +++ b/python/testData/typing/conformance/tests/_ignored.txt @@ -26,7 +26,6 @@ dataclasses_slots.py dataclasses_transform_field.py dataclasses_transform_meta.py dataclasses_usage.py -directives_no_type_check.py directives_type_checking.py directives_version_platform.py generics_base_class.py diff --git a/python/testSrc/com/jetbrains/python/inspections/Py3ArgumentListInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/Py3ArgumentListInspectionTest.java index b8985da994be..6017f7e1f998 100644 --- a/python/testSrc/com/jetbrains/python/inspections/Py3ArgumentListInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/Py3ArgumentListInspectionTest.java @@ -376,4 +376,29 @@ public class Py3ArgumentListInspectionTest extends PyInspectionTestCase { public void testMismatchedConditionalImplementationsHaveBothTooFewAndTooManyParameters() { doTest(); } + + public void testNoTypeCheck() { + doTestByText( + """ + from typing import no_type_check + + @no_type_check + def func(a): ... + + func() + func(1, 2) + """ + ); + doTestByText( + """ + from typing_extensions import no_type_check + + @no_type_check + def func(a): ... + + func() + func(1, 2) + """ + ); + } }