From a283c09245642c3a80160752f0c659650a70c133 Mon Sep 17 00:00:00 2001 From: Fredric Silberberg Date: Thu, 17 Aug 2017 16:10:42 -0700 Subject: [PATCH] Construct VB conversions directly from the bound node. --- .../Operations/VisualBasicOperationFactory.vb | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb b/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb index 5431a82ea38..8a8b9f3c74b 100644 --- a/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb +++ b/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb @@ -496,8 +496,7 @@ Namespace Microsoft.CodeAnalysis.Semantics Private Function CreateBoundTryCastOperation(boundTryCast As BoundTryCast) As IConversionExpression Dim operand As Lazy(Of IOperation) = New Lazy(Of IOperation)(Function() Create(boundTryCast.Operand)) Dim syntax As SyntaxNode = boundTryCast.Syntax - Dim summary As BoundNodeSummary = New BoundNodeSummary(boundTryCast.Operand, boundTryCast, Nothing) - Dim conversion As Conversion = _semanticModel.GetTypeInfoForNode(summary).ImplicitConversion + Dim conversion As Conversion = New Conversion(New KeyValuePair(Of VisualBasic.ConversionKind, MethodSymbol)(boundTryCast.ConversionKind, Nothing)) Dim isExplicitCastInCode As Boolean = True Dim isTryCast As Boolean = True Dim isChecked = False @@ -510,8 +509,7 @@ Namespace Microsoft.CodeAnalysis.Semantics Private Function CreateBoundDirectCastOperation(boundDirectCast As BoundDirectCast) As IConversionExpression Dim operand As Lazy(Of IOperation) = New Lazy(Of IOperation)(Function() Create(boundDirectCast.Operand)) Dim syntax As SyntaxNode = boundDirectCast.Syntax - Dim summary As BoundNodeSummary = New BoundNodeSummary(boundDirectCast.Operand, boundDirectCast, Nothing) - Dim conversion As Conversion = _semanticModel.GetTypeInfoForNode(summary).ImplicitConversion + Dim conversion As Conversion = New Conversion(New KeyValuePair(Of VisualBasic.ConversionKind, MethodSymbol)(boundDirectCast.ConversionKind, Nothing)) Dim isExplicit As Boolean = True Dim isTryCast As Boolean = False Dim isChecked = False @@ -524,8 +522,7 @@ Namespace Microsoft.CodeAnalysis.Semantics Private Function CreateBoundConversionOperation(boundConversion As BoundConversion) As IConversionExpression Dim operand As Lazy(Of IOperation) = New Lazy(Of IOperation)(Function() Create(boundConversion.Operand)) Dim syntax As SyntaxNode = boundConversion.Syntax - Dim summary As BoundNodeSummary = New BoundNodeSummary(boundConversion.Operand, boundConversion, Nothing) - Dim conversion As Conversion = _semanticModel.GetTypeInfoForNode(summary).ImplicitConversion + Dim conversion As Conversion = New Conversion(New KeyValuePair(Of VisualBasic.ConversionKind, MethodSymbol)(boundConversion.ConversionKind, TryCast(boundConversion.ExpressionSymbol, MethodSymbol))) Dim isExplicit As Boolean = boundConversion.ExplicitCastInCode Dim isTryCast As Boolean = False Dim isChecked = False @@ -538,8 +535,7 @@ Namespace Microsoft.CodeAnalysis.Semantics Private Function CreateBoundUserDefinedConversionOperation(boundUserDefinedConversion As BoundUserDefinedConversion) As IConversionExpression Dim operand As Lazy(Of IOperation) = New Lazy(Of IOperation)(Function() Create(boundUserDefinedConversion.Operand)) Dim syntax As SyntaxNode = boundUserDefinedConversion.Syntax - Dim summary As BoundNodeSummary = New BoundNodeSummary(boundUserDefinedConversion.Operand, boundUserDefinedConversion, Nothing) - Dim conversion As Conversion = _semanticModel.GetTypeInfoForNode(summary).ImplicitConversion + Dim conversion As Conversion = New Conversion(New KeyValuePair(Of VisualBasic.ConversionKind, MethodSymbol)(VisualBasic.ConversionKind.UserDefined, boundUserDefinedConversion.Call.Method)) Dim isExplicit As Boolean = Not boundUserDefinedConversion.WasCompilerGenerated Dim isTryCast As Boolean = False Dim isChecked = False -- GitLab