62 references to IsUnion
Microsoft.CodeAnalysis.CSharp (53)
Binder\Binder.ValueChecks.cs (4)
3937
((!conversion.Conversion.IsUserDefined && !conversion.Conversion.
IsUnion
) ||
4275
Debug.Assert((!conversion.Conversion.IsUserDefined && !conversion.Conversion.
IsUnion
) ||
4623
if (conversion.Conversion is { IsUserDefined: true } or {
IsUnion
: true })
5371
if (conversion.Conversion is { IsUserDefined: true } or {
IsUnion
: true })
Binder\Binder_Conversions.cs (6)
116
if (conversion.
IsUnion
&& !filterConversion(conversion.BestUnionConversionAnalysis.SourceConversion, result))
121
if ((result as BoundConversion)?.ConversionGroupOpt?.Conversion.
IsUnion
== true &&
122
!conversion.
IsUnion
&&
314
if (conversion.
IsUnion
)
501
else if (conversion.
IsUnion
)
2693
Debug.Assert(conversion.
IsUnion
);
Binder\Binder_Patterns.cs (1)
1190
Debug.Assert((!conversion.IsUserDefined && !conversion.
IsUnion
) || result == ConstantValue.False || result == ConstantValue.Bad);
Binder\DecisionDagBuilder.cs (1)
834
Debug.Assert(!conversion.
IsUnion
);
Binder\ForEachLoopBinder.cs (2)
649
Debug.Assert(!collectionConversionClassification.
IsUnion
);
1562
Debug.Assert(!collectionConversion.
IsUnion
);
Binder\Semantics\Conversions\Conversion.cs (9)
448
else if (
IsUnion
)
494
else if (
IsUnion
)
610
Debug.Assert(!this.
IsUnion
);
614
return (!this.IsUserDefined && !this.
IsUnion
) ||
1052
/// or the method used to perform the conversion for a union conversion if <see cref="
IsUnion
"/> is true.
1155
if (!
IsUnion
&& _uncommonData is MethodUncommonData { _conversionResult: { Kind: not UserDefinedConversionResultKind.NoApplicableOperators } conversionResult })
1173
if (!
IsUnion
&& _uncommonData is MethodUncommonData { _conversionResult: { Kind: UserDefinedConversionResultKind.Valid } conversionResult })
1187
if (
IsUnion
&& _uncommonData is MethodUncommonData { _conversionResult: { Kind: UserDefinedConversionResultKind.Valid } conversionResult })
1208
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
)
197
operandAsConversion.Conversion.
IsUnion
);
210
Debug.Assert(ConversionGroupOpt?.Conversion.
IsUnion
== true);
216
if (ConversionGroupOpt?.Conversion.
IsUnion
!= true)
228
if (current?.ConversionGroupOpt == ConversionGroupOpt && current.Conversion.
IsUnion
)
BoundTree\BoundNode.cs (3)
485
if (conversionGroupOpt?.Conversion.
IsUnion
== true) // https://github.com/dotnet/roslyn/issues/82636: Add coverage
488
while (possiblyUnion?.Conversion.
IsUnion
== false)
495
Debug.Assert(possiblyUnion.Conversion.
IsUnion
);
Compilation\CSharpSemanticModel.cs (2)
3559
if (conversion.ConversionGroupOpt?.Conversion.
IsUnion
== true &&
3560
conversion.Operand is BoundConversion { Conversion.
IsUnion
: true } unionConversion &&
FlowAnalysis\NullableWalker.cs (5)
6204
Debug.Assert(!conversion.
IsUnion
);
6210
Debug.Assert(!conversion.
IsUnion
);
10548
Debug.Assert(conversion.
IsUnion
);
10563
if (conversionOpt is { ConversionGroupOpt.Conversion.
IsUnion
: true })
11743
if (node.OperandConversion is BoundConversion { Conversion: ({ IsUserDefined: true } or {
IsUnion
: true }) and { Method.ParameterCount: 1 } operandConversion })
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
231
Debug.Assert(!conversion.
IsUnion
);
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (2)
954
if (conversion.
IsUnion
)
1556
Debug.Assert(conversion.
IsUnion
);
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (1)
512
Debug.Assert(!receiverConversion.
IsUnion
);
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (1)
199
case BoundConversion { Conversion: { IsUserDefined: true } or {
IsUnion
: true } } conv when conv.ExplicitCastInCode || enclosingConversionWasExplicit: // https://github.com/dotnet/roslyn/issues/82636: Add coverage
Operations\CSharpOperationFactory.cs (1)
1041
else if (boundConversion.ConversionGroupOpt?.Conversion.
IsUnion
== true &&
Symbols\Source\ParameterHelpers.cs (1)
1000
conversion.
IsUnion
|| // https://github.com/dotnet/roslyn/issues/82636: Add coverage
Microsoft.CodeAnalysis.CSharp.CSharp15.UnitTests (9)
UnionsTests.cs (9)
8562
Assert.True(conversion.
IsUnion
);
9311
Assert.True(conversion.
IsUnion
);
9354
Assert.False(conversion.
IsUnion
);
10726
Assert.True(conversion.
IsUnion
);
11062
Assert.True(conversion.
IsUnion
);
11108
Assert.False(conversion.
IsUnion
);
11369
Assert.True(conversion.
IsUnion
);
11440
Assert.True(conversion.
IsUnion
);
11511
Assert.True(conversion.
IsUnion
);