void (@NotNull PyDocStringOwner pyDocStringOwner, @NotNull PyStringLiteralExpression node) { final StructuredDocString docString = DocStringUtil.parseDocString(node); if (docString instanceof PlainDocString) { return; } if (pyDocStringOwner instanceof PyFunction) { final PyParameter[] realParams = ((PyFunction)pyDocStringOwner).getParameterList().getParameters(); final List<PyNamedParameter> missingParams = getMissingParams(docString, realParams); if (!missingParams.isEmpty()) { for (PyNamedParameter param : missingParams) { registerProblem(param, PyPsiBundle.message("INSP.missing.parameter.in.docstring", param.getName()), new DocstringQuickFix(param, null)); } } final List<Substring> unexpectedParams = getUnexpectedParams(docString, realParams); if (!unexpectedParams.isEmpty()) { for (Substring param : unexpectedParams) { final ProblemsHolder holder = getHolder(); if (holder != null) { holder.registerProblem(node, param.getTextRange(), PyPsiBundle.message("INSP.unexpected.parameter.in.docstring", param), new DocstringQuickFix(null, param.getValue())); } } } } }