public override bool Walk(ReturnStatement node) { var value = Eval.GetValueFromExpression(node.Expression); if (value != null) { // although technically legal, __init__ in a constructor should not have a not-none return value if (_function.IsDunderInit() && !value.IsOfType(BuiltinTypeId.None)) { Eval.ReportDiagnostics(Module.Uri, new DiagnosticsEntry( Resources.ReturnInInit, node.GetLocation(Eval).Span, ErrorCodes.ReturnInInit, Severity.Warning, DiagnosticSource.Analysis)); } _overload.AddReturnValue(value); } return(true); // We want to evaluate all code so all private variables in __new__ get defined }