private static SyntaxNode RemoveObjectCastIfAny(ISyntaxFacts syntaxFacts, SemanticModel semanticModel, SyntaxNode node) { if (syntaxFacts.IsCastExpression(node)) { syntaxFacts.GetPartsOfCastExpression(node, out var type, out var expression); var typeSymbol = semanticModel.GetTypeInfo(type).Type; if (typeSymbol?.SpecialType == SpecialType.System_Object) { return(expression); } } return(node); }
private static TExpressionSyntax RemoveObjectCastIfAny( ISyntaxFacts syntaxFacts, SemanticModel semanticModel, TExpressionSyntax node, CancellationToken cancellationToken) { if (syntaxFacts.IsCastExpression(node)) { syntaxFacts.GetPartsOfCastExpression(node, out var type, out var expression); var typeSymbol = semanticModel.GetTypeInfo(type, cancellationToken).Type; if (typeSymbol?.SpecialType == SpecialType.System_Object) { return((TExpressionSyntax)expression); } } return(node); }