1 write to ConversionGroupOpt
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
3014this.ConversionGroupOpt = conversionGroupOpt;
81 references to ConversionGroupOpt
Microsoft.CodeAnalysis.CSharp (81)
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 && 123operandAsConversion.ConversionGroupOpt == ConversionGroupOpt && 133operandAsConversion.ConversionGroupOpt == ConversionGroupOpt && 153Debug.Assert(ConversionGroupOpt is null); 157Debug.Assert(ConversionGroupOpt?.Conversion.IsUnion == true); 161if (ConversionGroupOpt?.Conversion.IsUnion == true) 165Debug.Assert(Conversion == ConversionGroupOpt.Conversion); 167if (!ConversionGroupOpt.Conversion.IsValid) 170Debug.Assert(Operand is not BoundConversion operandAsConversion || operandAsConversion.ConversionGroupOpt != ConversionGroupOpt); 174Debug.Assert(ConversionGroupOpt.Conversion.BestUnionConversionAnalysis is { }); 177if (Operand is BoundConversion operandAsConversion && operandAsConversion.ConversionGroupOpt == ConversionGroupOpt) 183var sourceConversion = ConversionGroupOpt.Conversion.BestUnionConversionAnalysis.SourceConversion; 192Debug.Assert(ConversionGroupOpt.Conversion.IsValid); 193Debug.Assert(ConversionGroupOpt.Conversion.BestUnionConversionAnalysis is { }); 201operandAsConversion.ConversionGroupOpt != ConversionGroupOpt); 202Debug.Assert(Conversion == ConversionGroupOpt.Conversion.BestUnionConversionAnalysis.SourceConversion); 211operandAsConversion.ConversionGroupOpt == ConversionGroupOpt && 213Debug.Assert(Conversion == ConversionGroupOpt.Conversion.BestUnionConversionAnalysis.TargetConversion); 225Debug.Assert(ConversionGroupOpt?.Conversion.IsUnion == true); 231if (ConversionGroupOpt?.Conversion.IsUnion != true) 243if (current?.ConversionGroupOpt == ConversionGroupOpt && current.Conversion.IsUnion) 250if (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)
6365TypeWithAnnotations explicitType = boundConversion.ConversionGroupOpt?.ExplicitType ?? default; 9117if (group != conversion.ConversionGroupOpt && group != null) 9122group = conversion.ConversionGroupOpt; 9335TypeWithAnnotations explicitType = node.ConversionGroupOpt?.ExplicitType ?? default; 10118var explicitType = operandConversion.ConversionGroupOpt?.ExplicitType; 10714if (conversionOpt is { ConversionGroupOpt.Conversion.IsUnion: true }) 10844var conversionGroup = conversionOpt?.ConversionGroupOpt; 10849Debug.Assert(conversionOpt.ConversionGroupOpt == conversionGroup); 10858var conversionGroup = conversionOpt?.ConversionGroupOpt; 10862Debug.Assert(conversionOpt.ConversionGroupOpt == conversionGroup); 10863if (conversionOpt.ConversionGroupOpt != conversionGroup)
Generated\BoundNodes.xml.Generated.cs (5)
3037if (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)) 11595return node.Update(operand, node.Conversion, node.IsBaseConversion, node.Checked, node.ExplicitCastInCode, node.ConstantValueOpt, node.ConversionGroupOpt, node.InConversionGroupFlags, type); 13771updatedNode = node.Update(operand, node.Conversion, node.IsBaseConversion, node.Checked, node.ExplicitCastInCode, node.ConstantValueOpt, node.ConversionGroupOpt, node.InConversionGroupFlags, infoAndType.Type!); 13776updatedNode = node.Update(operand, node.Conversion, node.IsBaseConversion, node.Checked, node.ExplicitCastInCode, node.ConstantValueOpt, node.ConversionGroupOpt, node.InConversionGroupFlags, node.Type); 16160new 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 (5)
1041else if (boundConversion.ConversionGroupOpt?.Conversion is { IsUnion: true, IsValid: true } && 1060if (isImplicit && boundConversion.ConversionGroupOpt?.Conversion is { IsUserDefined: true, IsValid: true } && 1064operandAsConversion.ConversionGroupOpt == boundConversion.ConversionGroupOpt && 1109Debug.Assert(isImplicit || target.Syntax != syntax || target.IsImplicit || boundConversion.ConversionGroupOpt != null);