diff --git a/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs b/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs index 9678fd43dcfbec31eecba5c15ce48ac66f39b8fe..a5332b7149beeacf348dd0dbb28c6b1e0ba8f2ac 100644 --- a/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs +++ b/src/Compilers/CSharp/Portable/Operations/CSharpOperationFactory.cs @@ -796,7 +796,7 @@ private IConversionOperation CreateBoundAsOperatorOperation(BoundAsOperator boun bool isChecked = false; ITypeSymbol type = boundAsOperator.Type; Optional constantValue = ConvertToOptional(boundAsOperator.ConstantValue); - bool isImplicit = false; // as expressions can never be implicitly created + bool isImplicit = boundAsOperator.WasCompilerGenerated; return new LazyCSharpConversionExpression(operand, conversion, isTryCast, isChecked, _semanticModel, syntax, type, constantValue, isImplicit); } diff --git a/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb b/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb index f0b9bd14647bcb6c4c832d3a4fa5b46a9228f066..b5c50299ded717c4fac7cf256d522c8b9f1d36ad 100644 --- a/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb +++ b/src/Compilers/VisualBasic/Portable/Operations/VisualBasicOperationFactory.vb @@ -517,7 +517,7 @@ Namespace Microsoft.CodeAnalysis.Operations Private Function CreateBoundTryCastOperation(boundTryCast As BoundTryCast) As IOperation Dim syntax As SyntaxNode = boundTryCast.Syntax Dim type As ITypeSymbol = boundTryCast.Type - Dim isImplicit As Boolean = False ' Try Cast can never be an implicit operation + Dim isImplicit As Boolean = boundTryCast.WasCompilerGenerated Dim constantValue As [Optional](Of Object) = ConvertToOptional(boundTryCast.ConstantValueOpt) Dim conversionInformation = CreateConversionOperand(boundTryCast.Operand, boundTryCast.ConversionKind, boundTryCast.Syntax, boundTryCast.Type) @@ -540,7 +540,7 @@ Namespace Microsoft.CodeAnalysis.Operations Dim syntax As SyntaxNode = boundDirectCast.Syntax Dim type As ITypeSymbol = boundDirectCast.Type Dim constantValue As [Optional](Of Object) = ConvertToOptional(boundDirectCast.ConstantValueOpt) - Dim isImplicit As Boolean = False ' Direct Cast can never be an implicit operation + Dim isImplicit As Boolean = boundDirectCast.WasCompilerGenerated Dim conversionInformation = CreateConversionOperand(boundDirectCast.Operand, boundDirectCast.ConversionKind, boundDirectCast.Syntax, boundDirectCast.Type) Dim operand As Lazy(Of IOperation) = conversionInformation.Operation