diff --git a/analyzers/src/SonarAnalyzer.CSharp/Facade/CSharpSyntaxFacade.cs b/analyzers/src/SonarAnalyzer.CSharp/Facade/CSharpSyntaxFacade.cs index cc478f1e42c..c419c236820 100644 --- a/analyzers/src/SonarAnalyzer.CSharp/Facade/CSharpSyntaxFacade.cs +++ b/analyzers/src/SonarAnalyzer.CSharp/Facade/CSharpSyntaxFacade.cs @@ -29,16 +29,16 @@ public override IEnumerable ArgumentExpressions(SyntaxNode node) => ArgumentList(node)?.OfType().Select(x => x.Expression) ?? Enumerable.Empty(); public override IReadOnlyList ArgumentList(SyntaxNode node) => - node switch + (node switch { - ObjectCreationExpressionSyntax creation => creation.ArgumentList.Arguments, - InvocationExpressionSyntax invocation => invocation.ArgumentList.Arguments, - ConstructorInitializerSyntax constructorInitializer => constructorInitializer.ArgumentList.Arguments, - null => ImmutableArray.Empty, - _ when PrimaryConstructorBaseTypeSyntaxWrapper.IsInstance(node) => ((PrimaryConstructorBaseTypeSyntaxWrapper)node).ArgumentList.Arguments, - _ when ImplicitObjectCreationExpressionSyntaxWrapper.IsInstance(node) => ((ImplicitObjectCreationExpressionSyntaxWrapper)node).ArgumentList.Arguments, + ObjectCreationExpressionSyntax creation => creation.ArgumentList, + InvocationExpressionSyntax invocation => invocation.ArgumentList, + ConstructorInitializerSyntax constructorInitializer => constructorInitializer.ArgumentList, + null => null, + _ when PrimaryConstructorBaseTypeSyntaxWrapper.IsInstance(node) => ((PrimaryConstructorBaseTypeSyntaxWrapper)node).ArgumentList, + _ when ImplicitObjectCreationExpressionSyntaxWrapper.IsInstance(node) => ((ImplicitObjectCreationExpressionSyntaxWrapper)node).ArgumentList, _ => throw InvalidOperation(node, nameof(ArgumentExpressions)) - }; + })?.Arguments ?? (IReadOnlyList)Array.Empty(); public override SyntaxToken? ArgumentNameColon(SyntaxNode argument) => (argument as ArgumentSyntax)?.NameColon?.Name?.Identifier;