From dc4b93db04f1b1b837ee207c5f1861fc4ae3a9b7 Mon Sep 17 00:00:00 2001 From: Semyon Proshev Date: Tue, 20 Mar 2018 18:02:40 +0300 Subject: [PATCH] Don't raise none assignment warning when return type is not None (PY-28729) --- .../inspections/PyNoneFunctionAssignmentInspection.java | 2 +- .../Py3NoneFunctionAssignmentInspectionTest.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/python/src/com/jetbrains/python/inspections/PyNoneFunctionAssignmentInspection.java b/python/src/com/jetbrains/python/inspections/PyNoneFunctionAssignmentInspection.java index 1acd71d36cda..40463b4c1b51 100644 --- a/python/src/com/jetbrains/python/inspections/PyNoneFunctionAssignmentInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyNoneFunctionAssignmentInspection.java @@ -62,7 +62,7 @@ public class PyNoneFunctionAssignmentInspection extends PyInspection { if (type instanceof PyNoneType && callee != null) { final Condition ignoredCallable = callable -> { - if (PySdkUtil.isElementInSkeletons(callable)) { + if (myTypeEvalContext.getReturnType(callable) != PyNoneType.INSTANCE || PySdkUtil.isElementInSkeletons(callable)) { return true; } if (callable instanceof PyFunction) { diff --git a/python/testSrc/com/jetbrains/python/inspections/Py3NoneFunctionAssignmentInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/Py3NoneFunctionAssignmentInspectionTest.java index b29b9cc6ffa9..8bbf463b582c 100644 --- a/python/testSrc/com/jetbrains/python/inspections/Py3NoneFunctionAssignmentInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/Py3NoneFunctionAssignmentInspectionTest.java @@ -33,6 +33,15 @@ public class Py3NoneFunctionAssignmentInspectionTest extends PyInspectionTestCas doMultiFileTest(); } + // PY-28729 + public void testGenericSubstitutedWithNone() { + doTestByText( + "test1 = max([])\n" + + "test2 = max([], default=None)\n" + + "test3 = max([], default=0)" + ); + } + @NotNull @Override protected Class getInspectionClass() {