From c7c77f57f2c3ea24f05d51dcee2ce91f4b303b7f Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Tue, 10 Nov 2015 16:30:41 +0300 Subject: [PATCH] PY-17526 Don't warn about missing *args and **kwargs declarations in "Incorrect Docstring" inspection --- .../PyIncorrectDocstringInspection.java | 5 ++++- .../test.py | 2 +- .../PyDocstringParametersInspection/test.py | 9 ++++++++- .../com/jetbrains/python/PyQuickFixTest.java | 20 ------------------- 4 files changed, 13 insertions(+), 23 deletions(-) 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