public static IEnumerable GetInvokedLocalFunctionDeclarations()

in src/dotnet/ReSharperPlugin.QuirkyFormatting/Psi/CodeStyle/Formatting/QuirkyCSharpUtils.cs [21:43]


    public static IEnumerable<ILocalFunctionDeclaration> GetInvokedLocalFunctionDeclarations(
        this IExpressionStatement expressionStatement
    )
    {
        if (expressionStatement.Expression is not IInvocationExpression invokedExpr) 
            return Enumerable.Empty<ILocalFunctionDeclaration>();

        var declarations = new List<ILocalFunctionDeclaration>();

        foreach (var containingScope in expressionStatement.EnumerateContainingScopes())
        {
            declarations.AddRange(
                containingScope.Children<IDeclarationStatement>()
                    .Where(
                        decl => decl.LocalFunctionDeclaration != null 
                                && decl.LocalFunctionDeclaration.NameIdentifier.Name == invokedExpr.Reference.GetName()
                    )
                    .Select(decl => decl.LocalFunctionDeclaration)
            );
        }

        return declarations;
    }