From 8a00e087a4b546134cbe89da391c12e64df7cd50 Mon Sep 17 00:00:00 2001 From: Semyon Proshev Date: Fri, 17 Mar 2017 17:28:43 +0300 Subject: [PATCH] Don't map null arguments to any parameters. EA-98555, EA-98663 Fixed. --- .../jetbrains/python/psi/impl/PyCallExpressionHelper.java | 4 +++- .../NullArgumentMappedToPositionalParameter.py | 6 ++++++ .../python/inspections/PyTypeCheckerInspectionTest.java | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 python/testData/inspections/PyTypeCheckerInspection/NullArgumentMappedToPositionalParameter.py diff --git a/python/src/com/jetbrains/python/psi/impl/PyCallExpressionHelper.java b/python/src/com/jetbrains/python/psi/impl/PyCallExpressionHelper.java index 3696428e74b4..6ae39240dac9 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyCallExpressionHelper.java +++ b/python/src/com/jetbrains/python/psi/impl/PyCallExpressionHelper.java @@ -689,7 +689,9 @@ public class PyCallExpressionHelper { final String parameterName = namedParameter.getName(); if (namedParameter.isPositionalContainer()) { for (PyExpression argument : allPositionalArguments) { - mappedParameters.put(argument, namedParameter); + if (argument != null) { + mappedParameters.put(argument, namedParameter); + } } if (variadicPositionalArguments.size() == 1) { mappedParameters.put(variadicPositionalArguments.get(0), namedParameter); diff --git a/python/testData/inspections/PyTypeCheckerInspection/NullArgumentMappedToPositionalParameter.py b/python/testData/inspections/PyTypeCheckerInspection/NullArgumentMappedToPositionalParameter.py new file mode 100644 index 000000000000..6c81f7eb5d5b --- /dev/null +++ b/python/testData/inspections/PyTypeCheckerInspection/NullArgumentMappedToPositionalParameter.py @@ -0,0 +1,6 @@ +class Kvas: + def __getitem__(self, *item): + pass + + +Kvas()[] \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/inspections/PyTypeCheckerInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyTypeCheckerInspectionTest.java index 77b5deabd4c3..6c368a1690c8 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyTypeCheckerInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyTypeCheckerInspectionTest.java @@ -371,4 +371,9 @@ public class PyTypeCheckerInspectionTest extends PyTestCase { public void testIteratingOverListAfterIfNot() { doTest(); } + + // EA-98555, EA-98663 + public void testNullArgumentMappedToPositionalParameter() { + doTest(); + } }