1 write to ConversionGroupOpt
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
3016this.ConversionGroupOpt = conversionGroupOpt;
80 references to ConversionGroupOpt
Microsoft.CodeAnalysis.CSharp (80)
Binder\Binder_Conversions.cs (2)
121if ((result as BoundConversion)?.ConversionGroupOpt?.Conversion.IsUnion == true && 123((BoundConversion)result).ConversionGroupOpt!.Conversion.BestUnionConversionAnalysis is { } analysis &&
Binder\Binder_Operators.cs (1)
81explicitCastInCode: true, conversion.ConstantValueOpt, conversion.ConversionGroupOpt, conversion.InConversionGroupFlags, conversion.Type);
BoundTree\BoundConversion.cs (49)
34operandAsConversion.ConversionGroupOpt == ConversionGroupOpt && 43Debug.Assert(ConversionGroupOpt is null); 47Debug.Assert(ConversionGroupOpt?.Conversion.IsUserDefined == true); 51if (ConversionGroupOpt?.Conversion.IsUserDefined == true) 55Debug.Assert(Conversion == ConversionGroupOpt.Conversion); 57if (!ConversionGroupOpt.Conversion.IsValid) 60Debug.Assert(Operand is not BoundConversion operandAsConversion || operandAsConversion.ConversionGroupOpt != ConversionGroupOpt); 66if (Operand is BoundConversion operandAsConversion && operandAsConversion.ConversionGroupOpt == ConversionGroupOpt) 81Debug.Assert(ConversionGroupOpt.Conversion.IsValid); 83if (ConversionGroupOpt.Conversion.IsImplicit) 94operandAsConversion.ConversionGroupOpt != ConversionGroupOpt); 95Debug.Assert(Conversion == ConversionGroupOpt.Conversion.UserDefinedFromConversion); 104if (Operand is BoundConversion operandAsConversion && operandAsConversion.ConversionGroupOpt == ConversionGroupOpt) 110Debug.Assert(ConversionGroupOpt.Conversion.UserDefinedFromConversion.IsIdentity || 111(ConversionGroupOpt.Conversion.UserDefinedFromConversion.IsTupleLiteralConversion && 122operandAsConversion.ConversionGroupOpt == ConversionGroupOpt && 130operandAsConversion.ConversionGroupOpt == ConversionGroupOpt && 149Debug.Assert(ConversionGroupOpt is null); 153Debug.Assert(ConversionGroupOpt?.Conversion.IsUnion == true); 157if (ConversionGroupOpt?.Conversion.IsUnion == true) 161Debug.Assert(Conversion == ConversionGroupOpt.Conversion); 163if (!ConversionGroupOpt.Conversion.IsValid) 166Debug.Assert(Operand is not BoundConversion operandAsConversion || operandAsConversion.ConversionGroupOpt != ConversionGroupOpt); 170Debug.Assert(ConversionGroupOpt.Conversion.BestUnionConversionAnalysis is { }); 173if (Operand is BoundConversion operandAsConversion && operandAsConversion.ConversionGroupOpt == ConversionGroupOpt) 179var sourceConversion = ConversionGroupOpt.Conversion.BestUnionConversionAnalysis.SourceConversion; 188Debug.Assert(ConversionGroupOpt.Conversion.IsValid); 189Debug.Assert(ConversionGroupOpt.Conversion.BestUnionConversionAnalysis is { }); 197operandAsConversion.ConversionGroupOpt != ConversionGroupOpt); 198Debug.Assert(Conversion == ConversionGroupOpt.Conversion.BestUnionConversionAnalysis.SourceConversion); 207operandAsConversion.ConversionGroupOpt == ConversionGroupOpt && 209Debug.Assert(Conversion == ConversionGroupOpt.Conversion.BestUnionConversionAnalysis.TargetConversion); 221Debug.Assert(ConversionGroupOpt?.Conversion.IsUnion == true); 227if (ConversionGroupOpt?.Conversion.IsUnion != true) 239if (current?.ConversionGroupOpt == ConversionGroupOpt && current.Conversion.IsUnion) 246if (current?.ConversionGroupOpt == ConversionGroupOpt && (current.InConversionGroupFlags & InConversionGroupFlags.UnionSourceConversion) != 0)
BoundTree\BoundExpression.cs (1)
498return this.Update(operand: operand, this.Conversion, this.IsBaseConversion, this.Checked, this.ExplicitCastInCode, this.ConstantValueOpt, this.ConversionGroupOpt, this.InConversionGroupFlags, this.Type);
BoundTree\BoundNode.cs (3)
457ConversionGroup? conversionGroupOpt = boundConversion.ConversionGroupOpt; 471while (operand is BoundConversion operandAsConversion && operandAsConversion.ConversionGroupOpt == conversionGroupOpt) 498while (operand is BoundConversion operandAsConversion && operandAsConversion.ConversionGroupOpt == conversionGroupOpt)
Compilation\CSharpSemanticModel.cs (3)
3554if (conversion.ConversionGroupOpt?.Conversion.IsUnion == true && 3556unionConversion.ConversionGroupOpt == conversion.ConversionGroupOpt)
FlowAnalysis\NullableWalker.cs (11)
6299TypeWithAnnotations explicitType = boundConversion.ConversionGroupOpt?.ExplicitType ?? default; 9015if (group != conversion.ConversionGroupOpt && group != null) 9020group = conversion.ConversionGroupOpt; 9233TypeWithAnnotations explicitType = node.ConversionGroupOpt?.ExplicitType ?? default; 10016var explicitType = operandConversion.ConversionGroupOpt?.ExplicitType; 10612if (conversionOpt is { ConversionGroupOpt.Conversion.IsUnion: true }) 10736var conversionGroup = conversionOpt?.ConversionGroupOpt; 10741Debug.Assert(conversionOpt.ConversionGroupOpt == conversionGroup); 10750var conversionGroup = conversionOpt?.ConversionGroupOpt; 10754Debug.Assert(conversionOpt.ConversionGroupOpt == conversionGroup); 10755if (conversionOpt.ConversionGroupOpt != conversionGroup)
Generated\BoundNodes.xml.Generated.cs (5)
3039if (operand != this.Operand || conversion != this.Conversion || isBaseConversion != this.IsBaseConversion || @checked != this.Checked || explicitCastInCode != this.ExplicitCastInCode || constantValueOpt != this.ConstantValueOpt || conversionGroupOpt != this.ConversionGroupOpt || inConversionGroupFlags != this.InConversionGroupFlags || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything)) 11598return node.Update(operand, node.Conversion, node.IsBaseConversion, node.Checked, node.ExplicitCastInCode, node.ConstantValueOpt, node.ConversionGroupOpt, node.InConversionGroupFlags, type); 13767updatedNode = node.Update(operand, node.Conversion, node.IsBaseConversion, node.Checked, node.ExplicitCastInCode, node.ConstantValueOpt, node.ConversionGroupOpt, node.InConversionGroupFlags, infoAndType.Type!); 13772updatedNode = node.Update(operand, node.Conversion, node.IsBaseConversion, node.Checked, node.ExplicitCastInCode, node.ConstantValueOpt, node.ConversionGroupOpt, node.InConversionGroupFlags, node.Type); 16154new TreeDumperNode("conversionGroupOpt", node.ConversionGroupOpt, null),
Lowering\BoundTreeToDifferentEnclosingContextRewriter.cs (1)
185node.ConversionGroupOpt,
Lowering\ClosureConversion\ClosureConversion.cs (1)
1421conversionGroupOpt: conversion.ConversionGroupOpt,
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (1)
685conversionGroupOpt: conversion.ConversionGroupOpt,
Operations\CSharpOperationFactory.cs (2)
1041else if (boundConversion.ConversionGroupOpt?.Conversion is { IsUnion: true, IsValid: true } && 1090Debug.Assert(isImplicit || target.Syntax != syntax || target.IsImplicit || boundConversion.ConversionGroupOpt != null);