25 instantiations of BoundConversion
Microsoft.CodeAnalysis.CSharp (25)
Binder\Binder_Conversions.cs (2)
198return new BoundConversion( 288return new BoundConversion(
Binder\Binder_Deconstruct.cs (3)
132new BoundConversion(boundRHS.Syntax, boundRHS, Conversion.Deconstruction, @checked: false, explicitCastInCode: false, conversionGroupOpt: null, 161var boundConversion = new BoundConversion( 310nestedConversions.Add((operandPlaceholder, new BoundConversion(syntax, operandPlaceholder, nestedConversion,
Binder\Binder_Expressions.cs (2)
3895return new BoundConversion( 8649expr = new BoundConversion(
Binder\Binder_Invocation.cs (1)
1759collection = new BoundConversion(
BoundTree\Constructors.cs (2)
330return new BoundConversion( 360return new BoundConversion(
Generated\BoundNodes.xml.Generated.cs (1)
2986var result = new BoundConversion(this.Syntax, operand, conversion, isBaseConversion, @checked, explicitCastInCode, constantValueOpt, conversionGroupOpt, originalUserDefinedConversionsOpt, type, this.HasErrors);
Lowering\ClosureConversion\ClosureConversion.cs (1)
1401result = new BoundConversion(
Lowering\DiagnosticsPass_Warnings.cs (1)
291left = new BoundConversion(left.Syntax, left, conversion, node.Operator.Kind.IsChecked(),
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (7)
282result = new BoundConversion( 519return new BoundConversion( 728new BoundConversion( 1016return new BoundConversion( 1132var result = new BoundConversion(syntax, rewrittenOperand, new Conversion(conversionKind, method, false), @checked, explicitCastInCode: explicitCastInCode, conversionGroup, constantValueOpt: null, rewrittenType); 1137return new BoundConversion(syntax, rewrittenOperand, conversion, @checked, explicitCastInCode: explicitCastInCode, conversionGroup, constantValueOpt: null, rewrittenType); 1740return new BoundConversion(syntax, operand, conversion, @checked: false, explicitCastInCode: false, conversionGroupOpt: null, constantValueOpt: constantValueOpt, type: toType);
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (4)
70var newArgument = new BoundConversion( 120var convertedFieldAccess = new BoundConversion( 213return new BoundConversion( 474return new BoundConversion(
Lowering\SyntheticBoundNodeFactory.cs (1)
1524return new BoundConversion(Syntax, arg, conversion, @checked: isChecked, explicitCastInCode: true, conversionGroupOpt: null, null, type) { WasCompilerGenerated = true };
280 references to BoundConversion
Microsoft.CodeAnalysis.CSharp (280)
Binder\Binder.ValueChecks.cs (10)
760var conversion = (BoundConversion)expr; 3582Debug.Assert(expr is BoundConversion conversion && 3947var conversion = (BoundConversion)expr; 4321var conversion = (BoundConversion)expr; 5098var conversion = (BoundConversion)expr; 5501private SignatureOnlyMethodSymbol GetInlineArrayConversionEquivalentSignatureMethod(BoundConversion conversion, out ImmutableArray<BoundExpression> arguments, out ImmutableArray<RefKind> refKinds)
Binder\Binder_Attributes.cs (2)
865return VisitConversion((BoundConversion)node, diagnostics, ref attrHasErrors, curArgumentHasErrors); 898private TypedConstant VisitConversion(BoundConversion node, BindingDiagnosticBag diagnostics, ref bool attrHasErrors, bool curArgumentHasErrors)
Binder\Binder_Conversions.cs (1)
67Debug.Assert(result is BoundConversion || (conversion.IsIdentity && ((object)result == source) || source.NeedsToBeConverted()) || hasErrors);
Binder\Binder_Deconstruct.cs (1)
161var boundConversion = new BoundConversion(
Binder\Binder_Expressions.cs (4)
5089case BoundConversion { Conversion.IsIdentity: true, Operand: BoundParameter param }: 5914if (argument is BoundConversion { Conversion.IsInterpolatedStringHandler: true, Operand: var operand }) 7453leftSymbol = ((BoundConversion)boundValue).Operand.ExpressionSymbol; 9242else if (convertedIndex is BoundConversion { Operand: { ConstantValueOpt: { SpecialType: SpecialType.System_Int32, Int32Value: int constIndex } } operand })
Binder\Binder_Operators.cs (8)
66var conversion = (BoundConversion)CreateConversion(node, placeholder, finalDynamicConversion, isCast: true, conversionGroupOpt: null, left.Type, diagnostics); 210if (finalConversion is not BoundConversion final) 1953BoundConversion leftConv = (BoundConversion)left; 1954BoundConversion rightConv = (BoundConversion)right; 2346if (resultConversion is not BoundConversion)
Binder\Binder_Patterns.cs (2)
688var conversion = (BoundConversion)convertedExpression;
Binder\Binder_Query.cs (2)
680var c1 = invocation.Arguments[index] as BoundConversion;
Binder\Binder_Statements.cs (2)
2647return BoundConversion.Synthesized(node, BindToTypeForErrorRecovery(expr), Conversion.NoConversion, false, explicitCastInCode: false, conversionGroupOpt: null, ConstantValue.NotAvailable, boolean, hasErrors: true); 2713return BoundConversion.Synthesized(node, expr, Conversion.NoConversion, false, explicitCastInCode: false, conversionGroupOpt: null, ConstantValue.NotAvailable, boolean, hasErrors: true);
Binder\ForEachLoopBinder.cs (1)
639if ((convertedCollectionExpression as BoundConversion)?.Operand != (object)collectionExpr)
Binder\RefSafetyAnalysis.cs (4)
665if (arg is BoundConversion { ConversionKind: ConversionKind.InterpolatedStringHandler, Operand: BoundInterpolatedString or BoundBinaryOperator } conversion) 939var right = node.Right; 1054case BoundConversion conv: 1079inlineArray: node.Expression is not BoundConversion { Conversion.IsIdentity: true, ExplicitCastInCode: false, Operand: BoundExpression operand } ? node.Expression : operand,
BoundTree\BoundExpression.cs (1)
478public BoundConversion UpdateOperand(BoundExpression operand)
BoundTree\BoundExpressionExtensions.cs (2)
245BoundConversion conversionNode = (BoundConversion)boundNode;
BoundTree\BoundNode.cs (6)
365BoundConversion { Operand: BoundCollectionExpression { IsParamsArrayOrCollection: true } }); 450case BoundConversion boundConversion: 459boundConversion = (BoundConversion)boundConversion.Operand; 464BoundConversion next; 467(object)(next = (BoundConversion)boundConversion.Operand).Operand == placeholder || 468(object)((BoundConversion)next.Operand).Operand == placeholder)
BoundTree\BoundNode_Source.cs (1)
320case BoundConversion conversion:
BoundTree\BoundTreeVisitors.cs (1)
64return VisitConversion(node as BoundConversion, arg);
BoundTree\Constructors.cs (3)
328public static BoundConversion SynthesizedNonUserDefined(SyntaxNode syntax, BoundExpression operand, Conversion conversion, TypeSymbol type, ConstantValue? constantValueOpt = null) 349public static BoundConversion Synthesized( 414public BoundConversion Update(BoundExpression operand,
CodeGen\EmitConversion.cs (7)
40private void EmitConversionExpression(BoundConversion conversion, bool used) 91private void EmitConversion(BoundConversion conversion) 182private void EmitIdentityConversion(BoundConversion conversion) 212private void EmitNumericConversion(BoundConversion conversion) 225private void EmitImplicitReferenceConversion(BoundConversion conversion) 257private void EmitExplicitReferenceConversion(BoundConversion conversion) 284private void EmitEnumConversion(BoundConversion conversion)
CodeGen\EmitExpression.cs (10)
127EmitConversionExpression((BoundConversion)expression, used); 1233var conversion = (BoundConversion)receiver; 1273if (receiver.Kind == BoundKind.Conversion && ((BoundConversion)receiver).ConversionKind == ConversionKind.Unboxing) 1536var conversion = (BoundConversion)receiver; 2166BoundConversion conv = (BoundConversion)current; 3919var conversion = (BoundConversion)expr;
CodeGen\EmitOperators.cs (1)
375if (comparand is BoundConversion { Type.SpecialType: SpecialType.System_Object, ConversionKind: ConversionKind.Boxing, Operand.Type: TypeParameterSymbol { AllowsRefLikeType: true } } &&
CodeGen\Optimizer.cs (2)
593public override BoundNode VisitConversion(BoundConversion node) 997((BoundConversion)right).ConversionKind.IsPointerConversion())
Compilation\CSharpSemanticModel.cs (15)
2103else if ((highestBoundExpr as BoundConversion)?.Conversion.IsTupleLiteralConversion == true) 2105var tupleLiteralConversion = (BoundConversion)highestBoundExpr; 2131if (highestBoundExpr is BoundConversion { ConversionKind: ConversionKind.SwitchExpression, Conversion: var convertedSwitchConversion }) 2149if (highestBoundExpr is BoundConversion { ConversionKind: ConversionKind.ConditionalExpression }) 2168if (highestBoundExpr is BoundConversion { ConversionKind: ConversionKind.CollectionExpression or ConversionKind.NoConversion, Conversion: var convertedCollectionConversion }) 2174else if (highestBoundExpr is BoundConversion { ConversionKind: ConversionKind.ImplicitNullable, Conversion.UnderlyingConversions: [{ Kind: ConversionKind.CollectionExpression }] } boundConversion) 2195else if (((BoundConversion)highestBoundExpr).Operand.Kind != BoundKind.Conversion) 2210conversion = binder.Conversions.ClassifyConversionFromExpression(boundExpr, convertedType, isChecked: ((BoundConversion)highestBoundExpr).Checked, ref discardedUseSiteInfo); 2242else if (boundExpr is BoundConversion { ConversionKind: ConversionKind.MethodGroup, Conversion: var exprConversion, Type: { TypeKind: TypeKind.FunctionPointer }, SymbolOpt: var symbol }) 3524var conversion = (BoundConversion)boundNode; 4295var conversion = (BoundConversion)boundNodeForSyntacticParent; 4302else if (conversion.Operand is BoundConversion { ConversionKind: ConversionKind.MethodGroup } nestedMethodGroupConversion)
Compilation\MemberSemanticModel.cs (2)
1005var boundConversion = boundDeconstruction.Right; 1807node = ((BoundConversion)node).Operand;
Compiler\MethodBodySynthesizer.cs (4)
123BoundConversion.Synthesized(syntax, 151BoundConversion.Synthesized(syntax, 397delegateUpdate = BoundConversion.SynthesizedNonUserDefined(syntax, 462delegateUpdate = BoundConversion.SynthesizedNonUserDefined(syntax,
FlowAnalysis\AbstractFlowPass.cs (5)
1734public override BoundNode VisitConversion(BoundConversion node) 1761protected virtual void AfterVisitConversion(BoundConversion node) 2635|| (expr is BoundConversion { ConversionKind: ConversionKind.ExplicitNullable or ConversionKind.ImplicitNullable } conv 2981BoundConversion { Conversion: Conversion conversion, Operand: BoundConditionalAccess ca } when CanPropagateStateWhenNotNull(conversion) => ca, 3089Debug.Assert(innerCondAccess.Receiver is not (BoundConditionalAccess or BoundConversion));
FlowAnalysis\AbstractRegionDataFlowPass.cs (1)
70protected override void AfterVisitConversion(BoundConversion node)
FlowAnalysis\DefiniteAssignment.cs (3)
927BoundConversion boundConversion = (BoundConversion)value; 2805protected override void AfterVisitConversion(BoundConversion node)
FlowAnalysis\NullableWalker.cs (41)
247/// The delegate is invoked by <see cref="VisitConversion(BoundConversion, BoundExpression, Conversion, TypeWithAnnotations, TypeWithState, bool, bool, bool, AssignmentKind, ParameterSymbol, bool, bool, bool, bool, Optional&lt;LocalState&gt;,bool, Location, ArrayBuilder&lt;VisitResult&gt;)"/>. 2096var conv = (BoundConversion)node; 2553var conversion = (BoundConversion)expr; 3890if (node.Conversion is BoundConversion { Conversion: var conversion }) 4690var expression = GetConversionIfApplicable(expressions[i], expressionNoConversion); 5184expr as BoundConversion, 5222expr as BoundConversion, 5396operand = ((BoundConversion)operand).Operand; 5590var conversion = (BoundConversion)possiblyConversion; 5699if ((node.RightOperand as BoundConversion)?.ExplicitCastInCode != false && 5753if (node is BoundConversion boundConversion) 5854Debug.Assert(innerCondAccess.Receiver is not (BoundConditionalAccess or BoundConversion)); 7020TrackAnalyzedNullabilityThroughConversionGroup(TypeWithState.Create(argument.Type, result.RValueType.State), argument as BoundConversion, argumentNoConversion); 7078elements = ((BoundCollectionExpression)((BoundConversion)argument).Operand).UnconvertedCollectionExpression.Elements.CastArray<BoundExpression>(); 7404BoundConversion? conversionOpt, 8111var conversion = (BoundConversion)expr; 8321public override BoundNode? VisitConversion(BoundConversion node) 8582BoundConversion? conversionOpt, 8806private static BoundConversion? GetConversionIfApplicable(BoundExpression? conversionOpt, BoundExpression convertedNode) 8813return conversionOpt == convertedNode ? null : (BoundConversion?)conversionOpt; 8836BoundConversion? conversionOpt, 9017if (useLegacyWarnings && conversionOperand is BoundConversion operandConversion && !operandConversion.ConversionKind.IsUserDefinedConversion()) 9388BoundConversion? conversionOpt, 9540var conversionOpt = conversionExpression as BoundConversion; 9548conversionOpt = conversionOpt.Operand as BoundConversion; 9552private void TrackAnalyzedNullabilityThroughConversionGroup(TypeWithState resultType, BoundConversion? conversionOpt, BoundExpression convertedNode) 9568conversionOpt = conversionOpt.Operand as BoundConversion; 10167var right = node.Right; 10446var conv = (BoundConversion)expr; 10491if (node.OperandConversion is BoundConversion { Conversion: var operandConversion } && operandConversion.IsUserDefined && operandConversion.Method?.ParameterCount == 1) 10598node.LeftConversion as BoundConversion ?? node.Left, 11076if (!reportedDiagnostic && !(collectionExpression is BoundConversion { Operand: { IsSuppressed: true } })) 11164if (node.Expression is not BoundConversion { Operand.IsSuppressed: true } && 11201isSuppressed: node.Expression is BoundConversion { Operand.IsSuppressed: true }, 11326node.Operand as BoundConversion,
FlowAnalysis\NullableWalker.DebugVerifier.cs (2)
279if (node.LeftConversion is BoundConversion leftConversion) 395public override BoundNode? VisitConversion(BoundConversion node)
Generated\BoundNodes.xml.Generated.cs (17)
1859public BoundDeconstructionAssignmentOperator(SyntaxNode syntax, BoundTupleExpression left, BoundConversion right, bool isUsed, TypeSymbol type, bool hasErrors = false) 1874public BoundConversion Right { get; } 1880public BoundDeconstructionAssignmentOperator Update(BoundTupleExpression left, BoundConversion right, bool isUsed, TypeSymbol type) 2982public BoundConversion Update(BoundExpression operand, Conversion conversion, bool isBaseConversion, bool @checked, bool explicitCastInCode, ConstantValue? constantValueOpt, ConversionGroup? conversionGroupOpt, ImmutableArray<MethodSymbol> originalUserDefinedConversionsOpt, TypeSymbol type) 2986var result = new BoundConversion(this.Syntax, operand, conversion, isBaseConversion, @checked, explicitCastInCode, constantValueOpt, conversionGroupOpt, originalUserDefinedConversionsOpt, type, this.HasErrors); 9016return VisitConversion((BoundConversion)node, arg); 9414public virtual R VisitConversion(BoundConversion node, A arg) => this.DefaultVisit(node, arg); 9650public virtual BoundNode? VisitConversion(BoundConversion node) => this.DefaultVisit(node); 10076public override BoundNode? VisitConversion(BoundConversion node) 11096BoundConversion right = (BoundConversion)this.Visit(node.Right); 11275public override BoundNode? VisitConversion(BoundConversion node) 12844BoundConversion right = (BoundConversion)this.Visit(node.Right); 13302public override BoundNode? VisitConversion(BoundConversion node) 13306BoundConversion updatedNode; 15660public override TreeDumperNode VisitConversion(BoundConversion node, object? arg) => new TreeDumperNode("conversion", null, new TreeDumperNode[]
Lowering\ClosureConversion\ClosureConversion.cs (1)
1389public override BoundNode VisitConversion(BoundConversion conversion)
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (6)
204return VisitConversion((BoundConversion)node); 535var conversion = (BoundConversion)operand; 669var conversion = e as BoundConversion; 686private BoundExpression VisitConversion(BoundConversion node)
Lowering\DiagnosticsPass_ExpressionTrees.cs (2)
375!(node is BoundConversion) && 782public override BoundNode VisitConversion(BoundConversion node)
Lowering\DiagnosticsPass_Warnings.cs (19)
143BoundConversion conversion = (BoundConversion)receiver; 166BoundConversion conversion = current as BoundConversion; 288if (!node.Operator.Kind.IsDynamic() && node.LeftConversion is BoundConversion { Conversion: { IsIdentity: false, Exists: true } conversion }) 347return node.Kind == BoundKind.Conversion && ((BoundConversion)node).ExplicitCastInCode; 354var conv = (BoundConversion)node; 431for (BoundConversion conversion = operand as BoundConversion; 433conversion = conversion.Operand as BoundConversion) 579BoundConversion conv = (BoundConversion)operand; 611BoundConversion conv = (BoundConversion)expr; 867var conv = (BoundConversion)node; 891var conversion = (BoundConversion)right;
Lowering\Extensions.cs (4)
58var conversion = (BoundConversion)expr; 105var conversion = (BoundConversion)expr;
Lowering\LocalRewriter\LocalRewriter.cs (1)
1117return expr is BoundConversion { Conversion: { IsInterpolatedStringHandler: true }, Type: { IsValueType: true } };
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (1)
204public override BoundNode VisitConversion(BoundConversion node)
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (2)
715var conversion = (BoundConversion)expression;
Lowering\LocalRewriter\LocalRewriter_Call.cs (7)
566BoundConversion conv = (BoundConversion)current; 835if (argument is BoundConversion { ConversionKind: ConversionKind.InterpolatedStringHandler, Operand: BoundInterpolatedString or BoundBinaryOperator } conversion) 843Debug.Assert(!((BoundConversion)argument).ExplicitCastInCode); 908if (argument is BoundConversion { ConversionKind: ConversionKind.InterpolatedStringHandler, Operand: BoundInterpolatedString or BoundBinaryOperator } conversion) 914Debug.Assert(!((BoundConversion)argument).ExplicitCastInCode); 1395=> expr is BoundConversion conv && conv.ConversionKind == ConversionKind.AnonymousFunction;
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (4)
664var spreadElementHasIdentityConversion = expressionStatement.Expression is not BoundConversion; 946if (spreadElement.IteratorBody is not BoundExpressionStatement expressionStatement || expressionStatement.Expression is BoundConversion) 1328var convertedExpression = (BoundConversion?)node.Conversion;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (2)
895var conv = (BoundConversion)expression;
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (12)
18public override BoundNode VisitConversion(BoundConversion node) 251var conversion = (BoundConversion)rewrittenNode; 263BoundConversion? oldNodeOpt, 298BoundConversion? oldNodeOpt, 1007case BoundConversion { Conversion: { Kind: ConversionKind.ImplicitNullable }, Operand: var convertedArgument } 1012case BoundConversion { Conversion: { Kind: ConversionKind.ImplicitNullable, UnderlyingConversions: var underlying }, Operand: var convertedArgument } conversion 1119rewrittenOperand = BoundConversion.SynthesizedNonUserDefined(syntax, rewrittenOperand, Conversion.ImplicitEnumeration, rewrittenOperandType); 1132var result = new BoundConversion(syntax, rewrittenOperand, new Conversion(conversionKind, method, false), @checked, explicitCastInCode: explicitCastInCode, conversionGroup, constantValueOpt: null, rewrittenType); 1360return BoundConversion.Synthesized(syntax, rewrittenOperand, conversion, @checked: @checked, explicitCastInCode: true, conversionGroupOpt: null, constantValueOpt: null, rewrittenType); 1402return BoundConversion.Synthesized(syntax, rewrittenOperand, conv, @checked: @checked, explicitCastInCode: true, conversionGroupOpt: null, constantValueOpt: null, rewrittenType); 1523return BoundConversion.Synthesized(syntax, rewrittenOperand, conversion, @checked, explicitCastInCode: explicitCastInCode, conversionGroupOpt: null, constantValueOpt, rewrittenType);
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (5)
19var right = node.Right; 114Debug.Assert(right is not ({ Kind: BoundKind.TupleLiteral } or BoundConversion { Operand.Kind: BoundKind.TupleLiteral })); 117right is { Kind: BoundKind.ConvertedTupleLiteral } or BoundConversion { Operand.Kind: BoundKind.ConvertedTupleLiteral } 306var tupleConversion = (BoundConversion)right;
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (4)
123(BoundConversion)node.Expression, 137BoundConversion convertedCollection, 1227var boundConversion = (BoundConversion)node.Expression;
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (1)
722else if (unloweredExpr is BoundConversion { Operand: { Type: { SpecialType: SpecialType.System_Int32 } } operand })
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (4)
44if (leftConversion is BoundConversion { Conversion: { IsIdentity: false } }) 50if (leftConversion is not BoundConversion { Conversion: { Exists: true } }) 223var boundConversion = (BoundConversion)expression;
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (2)
617BoundConversion conv = (BoundConversion)expr;
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (3)
16private BoundExpression RewriteInterpolatedStringConversion(BoundConversion conversion) 240if (arg is BoundConversion { Conversion: { Kind: ConversionKind.InterpolatedStringHandler }, ExplicitCastInCode: false, Operand: var operand }) 251Debug.Assert(arguments.All(arg => arg is not BoundConversion { Conversion: { IsInterpolatedStringHandler: true }, ExplicitCastInCode: false }));
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (18)
49case BoundConversion { Conversion: { Kind: ConversionKind.Identity }, Operand: var o }: 51case BoundConversion { Conversion: { Kind: ConversionKind.ImplicitTupleLiteral }, Operand: var o }: 56case BoundConversion { Conversion: { Kind: var kind } c, Operand: var o } conversion when 70var newArgument = new BoundConversion( 88case BoundConversion { Conversion: { Kind: var kind }, Operand: var o } when 103if (expr is BoundConversion { ConversionKind: ConversionKind.ImplicitTuple, Conversion: var conversion } boundConversion) 120var convertedFieldAccess = new BoundConversion( 190case BoundConversion { Conversion: { Kind: ConversionKind.DefaultLiteral } }: // This conversion can be performed lazily, but need not be saved. It is treated as non-side-effecting. 191case BoundConversion { Conversion.IsTupleConversion: true }: // If we were not able to push this conversion down the tree before getting here, it must be performed early, otherwise it won't be properly lowered by this machinery. 193case BoundConversion { Conversion: { Kind: var conversionKind } conversion } when conversionMustBePerformedOnOriginalExpression(conversionKind): 196case BoundConversion { Conversion: { IsUserDefined: true } } conv when conv.ExplicitCastInCode || enclosingConversionWasExplicit: 199case BoundConversion conv: 401case BoundConversion { Conversion: { IsIdentity: true }, Operand: var o }: 403case BoundConversion { Conversion: { IsNullable: true, UnderlyingConversions: var underlying } conversion, Operand: var o } 435case BoundConversion { Conversion: { IsIdentity: true }, Operand: var o }: 437case BoundConversion { Conversion: { IsNullable: true, UnderlyingConversions: var nested }, Operand: var o } conv when 472BoundExpression MakeBoundConversion(BoundExpression expr, Conversion conversion, TypeWithAnnotations type, BoundConversion enclosing) 608return (expr is BoundConversion conv)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (1)
608while (expression is BoundConversion conversion)
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (1)
508Debug.Assert(methodArgumentInfo.Arguments.All(arg => arg is not BoundConversion { ConversionKind: ConversionKind.InterpolatedStringHandler }));
Lowering\MethodToClassRewriter.cs (1)
291public override BoundNode? VisitConversion(BoundConversion node)
Lowering\SpillSequenceSpiller.cs (1)
1174public override BoundNode VisitConversion(BoundConversion node)
Lowering\SyntheticBoundNodeFactory.cs (2)
570expression = BoundConversion.Synthesized(Syntax, expression, conversion, false, explicitCastInCode: false, conversionGroupOpt: null, ConstantValue.NotAvailable, CurrentFunction.ReturnType); 1242? BoundConversion.SynthesizedNonUserDefined(syntax, nullLiteral, Conversion.NullToPointer, type)
Operations\CSharpOperationFactory.cs (8)
90return CreateBoundConversionOperation((BoundConversion)boundNode); 1015private IOperation CreateBoundConversionOperation(BoundConversion boundConversion, bool forceOperandImplicitLiteral = false) 1077BoundConversion correctedConversionNode = boundConversion; 1098var nestedConversion = (BoundConversion)boundOperand; 1978boundForEachStatement.Expression is not BoundConversion { Conversion.IsIdentity: true, ExplicitCastInCode: false, Operand: BoundExpression operand } ? 2355BoundConversion { Operand: BoundLiteral } c => CreateBoundConversionOperation(c, forceOperandImplicitLiteral: true), 2417private IInterpolatedStringHandlerCreationOperation CreateInterpolatedStringHandler(BoundConversion conversion)
Operations\CSharpOperationFactory_Methods.cs (2)
39IOperation value = Create(expression is BoundConversion { IsParamsArrayOrCollection: true } conversion ? conversion.Operand : expression); 143if (delegateNode is BoundConversion boundConversion)
Symbols\ConstantValueUtils.cs (2)
99var conversion = (BoundConversion)unconvertedBoundValue;
Symbols\Source\ParameterHelpers.cs (2)
892var conversion = (BoundConversion)expression;
Symbols\Source\SourceComplexParameterSymbol.cs (1)
401((BoundConversion)convertedExpression).ConversionKind != ConversionKind.DefaultLiteral)