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
        }