diff --git a/python/src/com/jetbrains/python/inspections/PyIncorrectDocstringInspection.java b/python/src/com/jetbrains/python/inspections/PyIncorrectDocstringInspection.java index 8d5a0a2b340b..fa3e2baae971 100644 --- a/python/src/com/jetbrains/python/inspections/PyIncorrectDocstringInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyIncorrectDocstringInspection.java @@ -31,6 +31,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import static com.jetbrains.python.psi.PyUtil.as; + /** * @author Mikhail Golubev * @author Alexey.Ivanov @@ -88,7 +90,8 @@ public class PyIncorrectDocstringInspection extends PyBaseDocstringInspection { final List missing = new ArrayList(); final List docStringParameters = docString.getParameters(); for (PyParameter p : realParams) { - if (p.isSelf() || !(p instanceof PyNamedParameter)) { + final PyNamedParameter named = as(p, PyNamedParameter.class); + if (p.isSelf() || named == null || named.isPositionalContainer() || named.isKeywordContainer()) { continue; } if (!docStringParameters.contains(p.getName())) { diff --git a/python/testData/inspections/GoogleDocstringParametersInspection/test.py b/python/testData/inspections/GoogleDocstringParametersInspection/test.py index ab9f8b79ba57..10dfba309e79 100644 --- a/python/testData/inspections/GoogleDocstringParametersInspection/test.py +++ b/python/testData/inspections/GoogleDocstringParametersInspection/test.py @@ -59,7 +59,7 @@ def varagrs_dont_exist(): **kwargs: """ -def varagrs_undefined(x, *args, y, **kwargs): +def varagrs_undefined(x, *args, y, **kwargs): """ Args: x: diff --git a/python/testData/inspections/PyDocstringParametersInspection/test.py b/python/testData/inspections/PyDocstringParametersInspection/test.py index 3bd62cf93e11..2a2ba202fee5 100644 --- a/python/testData/inspections/PyDocstringParametersInspection/test.py +++ b/python/testData/inspections/PyDocstringParametersInspection/test.py @@ -41,4 +41,11 @@ def foo(a, c