public override async Task WalkAsync(PythonWalkerAsync walker, CancellationToken cancellationToken = default)
        {
            if (await walker.WalkAsync(this, cancellationToken))
            {
                if (NameExpression != null)
                {
                    await NameExpression.WalkAsync(walker, cancellationToken);
                }

                foreach (var p in Parameters)
                {
                    await p.WalkAsync(walker, cancellationToken);
                }

                if (Decorators != null)
                {
                    await Decorators.WalkAsync(walker, cancellationToken);
                }
                if (_body != null)
                {
                    await _body.WalkAsync(walker, cancellationToken);
                }
                if (ReturnAnnotation != null)
                {
                    await ReturnAnnotation.WalkAsync(walker, cancellationToken);
                }
            }
            await walker.PostWalkAsync(this, cancellationToken);
        }