@Override
  public @Nullable PyType getReturnStatementType(@NotNull TypeEvalContext context) {
    final ReturnVisitor visitor = new ReturnVisitor(this, context);
    final PyStatementList statements = getStatementList();
    statements.accept(visitor);
    if ((isGeneratedStub() || PyKnownDecoratorUtil.hasAbstractDecorator(this, context)) && !visitor.myHasReturns) {
      if (PyUtil.isInitMethod(this)) {
        return PyNoneType.INSTANCE;
      }
      return null;
    }
    return visitor.result();
  }
@Override
  public @Nullable PyType getReturnStatementType(@NotNull TypeEvalContext context)