From cb22683f8d684331e472a3b06a06a89c3a747535 Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Wed, 30 Aug 2017 23:18:52 +0300 Subject: [PATCH] PY-24637 Use non-resolvable built-in constants check for doctest and Jupyter references Since the switch to the builtins from Typeshed we no longer have the definitions for True, False, None for PY2. We have to ignore these references via null highlighting severity as we do in the base method for PyReferenceImpl. --- .../src/org/jetbrains/plugins/ipnb/psi/IpnbPyReference.java | 3 ++- .../python/documentation/doctest/PyDocReference.java | 3 ++- .../PyUnresolvedReferencesInspection/py2TrueInDocTest.py | 5 +++++ .../inspections/PyUnresolvedReferencesInspectionTest.java | 5 +++++ 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 python/testData/inspections/PyUnresolvedReferencesInspection/py2TrueInDocTest.py diff --git a/python/ipnb/src/org/jetbrains/plugins/ipnb/psi/IpnbPyReference.java b/python/ipnb/src/org/jetbrains/plugins/ipnb/psi/IpnbPyReference.java index d50307981b36..f52164802ae1 100644 --- a/python/ipnb/src/org/jetbrains/plugins/ipnb/psi/IpnbPyReference.java +++ b/python/ipnb/src/org/jetbrains/plugins/ipnb/psi/IpnbPyReference.java @@ -25,7 +25,8 @@ public class IpnbPyReference extends PyReferenceImpl { @Override public HighlightSeverity getUnresolvedHighlightSeverity(TypeEvalContext context) { - return HighlightSeverity.WARNING; + final HighlightSeverity severity = super.getUnresolvedHighlightSeverity(context); + return severity != null ? HighlightSeverity.WARNING : null; } @NotNull diff --git a/python/src/com/jetbrains/python/documentation/doctest/PyDocReference.java b/python/src/com/jetbrains/python/documentation/doctest/PyDocReference.java index 35cb5a81a710..3c9e8f52c1bb 100644 --- a/python/src/com/jetbrains/python/documentation/doctest/PyDocReference.java +++ b/python/src/com/jetbrains/python/documentation/doctest/PyDocReference.java @@ -51,7 +51,8 @@ public class PyDocReference extends PyReferenceImpl { @Override public HighlightSeverity getUnresolvedHighlightSeverity(TypeEvalContext context) { - return HighlightSeverity.WARNING; + final HighlightSeverity severity = super.getUnresolvedHighlightSeverity(context); + return severity != null ? HighlightSeverity.WARNING : null; } @NotNull diff --git a/python/testData/inspections/PyUnresolvedReferencesInspection/py2TrueInDocTest.py b/python/testData/inspections/PyUnresolvedReferencesInspection/py2TrueInDocTest.py new file mode 100644 index 000000000000..0a8a7576872b --- /dev/null +++ b/python/testData/inspections/PyUnresolvedReferencesInspection/py2TrueInDocTest.py @@ -0,0 +1,5 @@ +def func(x, y): + """ + >>> func(True, True2) + """ + return True, True2 diff --git a/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java index 74f0012a62b3..04b3bc0aafbb 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyUnresolvedReferencesInspectionTest.java @@ -637,6 +637,11 @@ public class PyUnresolvedReferencesInspectionTest extends PyInspectionTestCase { doMultiFileTest(); } + // PY-24637 + public void testPy2TrueInDocTest() { + doTest(); + } + @NotNull @Override protected Class getInspectionClass() {