59 references to IsUnion
Microsoft.CodeAnalysis.CSharp (59)
Binder\Binder.ValueChecks.cs (4)
3943
((!conversion.Conversion.IsUserDefined && !conversion.Conversion.
IsUnion
) ||
4281
Debug.Assert((!conversion.Conversion.IsUserDefined && !conversion.Conversion.
IsUnion
) ||
4630
if (conversion.Conversion is { IsUserDefined: true } or {
IsUnion
: true })
5415
if (conversion.Conversion is { IsUserDefined: true } or {
IsUnion
: true })
Binder\Binder_Conversions.cs (6)
116
if (conversion.
IsUnion
&& conversion.IsValid && !filterConversion(conversion.BestUnionConversionAnalysis!.SourceConversion, result))
121
if ((result as BoundConversion)?.ConversionGroupOpt?.Conversion.
IsUnion
== true &&
122
!conversion.
IsUnion
&&
315
if (conversion.
IsUnion
)
502
else if (conversion.
IsUnion
)
2719
Debug.Assert(conversion.
IsUnion
);
Binder\Binder_Expressions.cs (1)
2877
Debug.Assert(conversion.IsUserDefined || conversion.
IsUnion
);
Binder\Binder_Patterns.cs (1)
1431
Debug.Assert((!conversion.IsUserDefined && !conversion.
IsUnion
) || result == ConstantValue.False || result == ConstantValue.Bad);
Binder\Binder_Statements.cs (1)
2314
Debug.Assert(conversion.IsUserDefined || conversion.
IsUnion
);
Binder\DecisionDagBuilder.cs (1)
837
Debug.Assert(!conversion.
IsUnion
);
Binder\ForEachLoopBinder.cs (2)
649
Debug.Assert(!collectionConversionClassification.
IsUnion
);
1567
Debug.Assert(!collectionConversion.
IsUnion
);
Binder\Semantics\Conversions\Conversion.cs (9)
164
Debug.Assert(!(this is { IsNullable: true, UnderlyingConversions: var underlying } && (underlying[0].IsUserDefined || underlying[0].
IsUnion
)));
464
else if (
IsUnion
&& BestUnionConversionAnalysis is { } analysis)
508
else if (
IsUnion
&& BestUnionConversionAnalysis is { } analysis)
622
Debug.Assert(!this.
IsUnion
);
626
return (!this.IsUserDefined && !this.
IsUnion
) ||
1063
/// or the method used to perform the conversion for a union conversion if <see cref="
IsUnion
"/> is true.
1184
if (!
IsUnion
&& _uncommonData is MethodUncommonData { _conversionResult: { Kind: UserDefinedConversionResultKind.Valid } conversionResult })
1198
if (
IsUnion
&& _uncommonData is MethodUncommonData { _conversionResult: { Kind: UserDefinedConversionResultKind.Valid } conversionResult })
1219
var (methodSymbol, constrainedToType) = IsUserDefined ||
IsUnion
? (MethodSymbol, ConstrainedToType) : (null, null);
Binder\Semantics\Conversions\ConversionsBase.cs (3)
1910
(conversion.
IsUnion
|| conversion.IsUserDefined || HasTopLevelNullabilityImplicitConversion(source, destination));
2385
if (!conversion.IsUserDefined && !conversion.
IsUnion
&& !conversions.HasTopLevelNullabilityImplicitConversion(s, d))
2407
if (!conversion.IsUserDefined && !conversion.
IsUnion
&& !conversions.HasTopLevelNullabilityImplicitConversion(s, d))
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (1)
3052
return conversion.Exists && (conversion.
IsUnion
|| conversion.IsUserDefined || conversions.HasTopLevelNullabilityImplicitConversion(sourceWithAnnotations, destinationWithAnnotations));
Binder\SwitchBinder.cs (1)
271
if (!conversion.
IsUnion
&& !(caseExpression.IsLiteralNull() && SwitchGoverningType.StrippedType() is NamedTypeSymbol { IsUnionType: true }))
BoundTree\BoundConversion.cs (8)
145
if (Conversion.
IsUnion
)
153
Debug.Assert(ConversionGroupOpt?.Conversion.
IsUnion
== true);
157
if (ConversionGroupOpt?.Conversion.
IsUnion
== true)
159
if (Conversion.
IsUnion
)
208
operandAsConversion.Conversion.
IsUnion
);
221
Debug.Assert(ConversionGroupOpt?.Conversion.
IsUnion
== true);
227
if (ConversionGroupOpt?.Conversion.
IsUnion
!= true)
239
if (current?.ConversionGroupOpt == ConversionGroupOpt && current.Conversion.
IsUnion
)
BoundTree\BoundNode.cs (3)
485
if (conversionGroupOpt?.Conversion.
IsUnion
== true)
488
while (possiblyUnion?.Conversion.
IsUnion
== false)
495
Debug.Assert(possiblyUnion.Conversion.
IsUnion
);
Compilation\CSharpSemanticModel.cs (2)
3554
if (conversion.ConversionGroupOpt?.Conversion.
IsUnion
== true &&
3555
conversion.Operand is BoundConversion { Conversion.
IsUnion
: true } unionConversion &&
FlowAnalysis\AbstractFlowPass.cs (1)
3087
if (!conversion.IsUserDefined && !conversion.
IsUnion
)
FlowAnalysis\NullableWalker.cs (7)
6244
Debug.Assert(!conversion.
IsUnion
);
6250
Debug.Assert(!conversion.
IsUnion
);
6257
if (conversion.IsUserDefined || conversion.
IsUnion
)
10589
Debug.Assert(conversion.
IsUnion
);
10612
if (conversionOpt is { ConversionGroupOpt.Conversion.
IsUnion
: true })
11794
if (node.OperandConversion is BoundConversion { Conversion: ({ IsUserDefined: true } or {
IsUnion
: true }) and { Method.ParameterCount: 1 } operandConversion })
11799
Debug.Assert(!operandConversion.
IsUnion
);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
231
Debug.Assert(!conversion.
IsUnion
);
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (2)
954
if (conversion.
IsUnion
)
1559
Debug.Assert(conversion.
IsUnion
);
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (1)
512
Debug.Assert(!receiverConversion.
IsUnion
);
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (2)
199
case BoundConversion { Conversion: { IsUserDefined: true } or {
IsUnion
: true } } conv when conv.ExplicitCastInCode || enclosingConversionWasExplicit:
411
!(underlying[0].IsUserDefined || underlying[0].
IsUnion
): // It looks like this condition is always satisfied because neither user-defined, nor union conversion can be underlying for a Nullable conversion, but let's keep it just in case.
Operations\CSharpOperationFactory.cs (1)
1041
else if (boundConversion.ConversionGroupOpt?.Conversion is {
IsUnion
: true, IsValid: true } &&
Symbols\Source\ParameterHelpers.cs (1)
990
conversion.
IsUnion
||