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