diff --git a/src/Features/Core/Portable/AddParameter/AbstractAddParameterCodeFixProvider.cs b/src/Features/Core/Portable/AddParameter/AbstractAddParameterCodeFixProvider.cs index 6c5665c0de3ba5ca39f9cef9668f653298c5fa8e..96a83511489b2e76331c28d0c84cdab9df2b226a 100644 --- a/src/Features/Core/Portable/AddParameter/AbstractAddParameterCodeFixProvider.cs +++ b/src/Features/Core/Portable/AddParameter/AbstractAddParameterCodeFixProvider.cs @@ -140,26 +140,21 @@ public override async Task RegisterCodeFixesAsync(CodeFixContext context) { // Not supported if this is "new { ... }" (as there are no parameters at all. - var typeNode = syntaxFacts.IsImplicitObjectCreationExpression(node) ? - node : syntaxFacts.GetObjectCreationType(objectCreation); + var typeNode = syntaxFacts.IsImplicitObjectCreationExpression(node) + ? node + : syntaxFacts.GetObjectCreationType(objectCreation); if (typeNode == null) { return new RegisterFixData(); } - INamedTypeSymbol type = null; var symbol = semanticModel.GetSymbolInfo(typeNode, cancellationToken).GetAnySymbol(); - - // Implicit object creation expressions - if (symbol is IMethodSymbol methodSymbol) - { - type = methodSymbol.ContainingType; - } - // Regular object creation expressions - else if (symbol is INamedTypeSymbol namedTypeSymbol) + var type = symbol switch { - type = namedTypeSymbol; - } + IMethodSymbol methodSymbol => methodSymbol.ContainingType, // Implicit object creation expressions + INamedTypeSymbol namedTypeSymbol => namedTypeSymbol, // Standard object creation expressions + _ => null, + }; // If we can't figure out the type being created, or the type isn't in source, // then there's nothing we can do.