private void checkParameters(@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()));
              }
            }
          }
        }
      }
private void checkParameters(@NotNull PyDocStringOwner pyDocStringOwner, @NotNull PyStringLiteralExpression node)