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