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() {