@NotNull
  public PyDocstringGenerator withInferredParameters(boolean addReturn) {
    if (myDocStringOwner instanceof PyAstFunction) {
      for (PyAstParameter param : ((PyAstFunction)myDocStringOwner).getParameterList().getParameters()) {
        if (param.getAsNamed() == null) {
          continue;
        }
        final String paramName = param.getName();
        final StructuredDocString docString = getStructuredDocString();
        if (StringUtil.isEmpty(paramName) || param.isSelf() || docString != null && docString.getParameters().contains(paramName)) {
          continue;
        }
        withParam((PyAstNamedParameter)param);
      }
      final RaiseVisitor visitor = new RaiseVisitor();
      final PyAstStatementList statementList = ((PyAstFunction)myDocStringOwner).getStatementList();
      statementList.accept(visitor);
      if (!PyUtilCore.isInitOrNewMethod(myDocStringOwner) && (visitor.myHasReturn || addReturn)) {
        // will add :return: placeholder in Sphinx/Epydoc docstrings
        withReturnValue(null);
      }
    }
    return this;
  }
@NotNull
  public PyDocstringGenerator withInferredParameters(boolean addReturn)