private async Task <Document> GenerateExplicitConversion(Document document, YieldStatementSyntax yieldStatement, CancellationToken cancellationToken) { var mappingEngine = await CreateMappingEngine(document, yieldStatement, cancellationToken); var returnExpressionTypeInfo = mappingEngine.GetExpressionTypeInfo(yieldStatement.Expression); var mappingExpression = mappingEngine.MapExpression(yieldStatement.Expression, returnExpressionTypeInfo.Type, returnExpressionTypeInfo.ConvertedType); return(await ReplaceNode(document, yieldStatement, yieldStatement.WithExpression(mappingExpression), cancellationToken)); }
private async Task <Document> GenerateExplicitConversion(Document document, YieldStatementSyntax yieldStatement, CancellationToken cancellationToken) { var(mappingEngine, semanticModel) = await CreateMappingEngine(document, yieldStatement, cancellationToken); var returnExpressionTypeInfo = mappingEngine.GetExpressionTypeInfo(yieldStatement.Expression); var mappingExpression = mappingEngine.MapExpression(yieldStatement.Expression !.WithoutTrivia(), returnExpressionTypeInfo.GetAnnotatedType(), returnExpressionTypeInfo.GetAnnotatedTypeForConverted(), new MappingContext(yieldStatement, semanticModel)); return(await ReplaceNode(document, yieldStatement, yieldStatement.WithExpression(mappingExpression), cancellationToken)); }