6 overrides of Discriminator
Microsoft.CodeAnalysis (6)
ConstantValueSpecialized.cs (6)
34public override ConstantValueTypeDiscriminator Discriminator 75public override ConstantValueTypeDiscriminator Discriminator 159public override ConstantValueTypeDiscriminator Discriminator 238public override ConstantValueTypeDiscriminator Discriminator 279public override ConstantValueTypeDiscriminator Discriminator 322public override ConstantValueTypeDiscriminator Discriminator
130 references to Discriminator
Microsoft.CodeAnalysis (42)
CodeGen\ILBuilderEmit.cs (1)
568ConstantValueTypeDiscriminator discriminator = value.Discriminator;
CodeGen\SwitchIntegralJumpTableEmitter.cs (1)
476switch (value.Discriminator)
CodeGen\SwitchIntegralJumpTableEmitter.SwitchBucket.cs (4)
184Debug.Assert(endConstant.Discriminator == startConstant.Discriminator); 207if (startConstant.Discriminator == ConstantValueTypeDiscriminator.Int64) 212else if (startConstant.Discriminator == ConstantValueTypeDiscriminator.UInt64)
ConstantValue.cs (25)
460return Discriminator switch 479ConstantValueTypeDiscriminator.Null or ConstantValueTypeDiscriminator.Bad => throw ExceptionUtilities.UnexpectedValue(Discriminator), 480_ => throw ExceptionUtilities.UnexpectedValue(Discriminator) 513switch (this.Discriminator) 534default: throw ExceptionUtilities.UnexpectedValue(this.Discriminator); 564return IsIntegralType(this.Discriminator); 572switch (this.Discriminator) 600switch (this.Discriminator) 643return IsUnsignedIntegralType(this.Discriminator); 656return this.Discriminator == ConstantValueTypeDiscriminator.Boolean; 669return this.Discriminator == ConstantValueTypeDiscriminator.Char; 683return this.Discriminator == ConstantValueTypeDiscriminator.String; 696return this.Discriminator == ConstantValueTypeDiscriminator.Decimal; 709return this.Discriminator == ConstantValueTypeDiscriminator.DateTime; 723return this.Discriminator == ConstantValueTypeDiscriminator.Double || 724this.Discriminator == ConstantValueTypeDiscriminator.Single; 732return this.Discriminator == ConstantValueTypeDiscriminator.Bad; 754switch (this.Discriminator) 801default: throw ExceptionUtilities.UnexpectedValue(this.Discriminator); 808return String.Format("{0}({1}: {2})", this.GetType().Name, valueToDisplay, this.Discriminator); 813return Discriminator switch 829_ => throw ExceptionUtilities.UnexpectedValue(Discriminator) 853return this.Discriminator == other.Discriminator; 878return ((int)this.Discriminator).GetHashCode();
ConstantValueSpecialized.cs (4)
466return this.Discriminator == other.Discriminator && other.DecimalValue == 0m; 489return this.Discriminator == other.Discriminator && other.DoubleValue == 0; 512return this.Discriminator == other.Discriminator && other.SingleValue == 0; 665return this.Discriminator == other.Discriminator && other.DecimalValue == 1m;
EnumConstantHelper.cs (2)
28switch (constantValue.Discriminator) 111throw ExceptionUtilities.UnexpectedValue(constantValue.Discriminator);
Operations\ControlFlowGraphBuilder.cs (1)
4992Debug.Assert(value.Discriminator != ConstantValueTypeDiscriminator.Bad);
SwitchConstantValueHelper.cs (4)
19switch (constant.Discriminator) 72switch (first.Discriminator) 93throw ExceptionUtilities.UnexpectedValue(first.Discriminator); 135switch (constant.Discriminator)
Microsoft.CodeAnalysis.CSharp (24)
Binder\Binder_Conversions.cs (5)
1734switch (value.Discriminator) 1976case SpecialType.System_Decimal: return (value.Discriminator == ConstantValueTypeDiscriminator.Single) ? (decimal)(float)doubleValue : (decimal)doubleValue; 2000throw ExceptionUtilities.UnexpectedValue(value.Discriminator); 2087switch (value.Discriminator) 2103default: throw ExceptionUtilities.UnexpectedValue(value.Discriminator);
Binder\Binder_Statements.cs (1)
2585if (assignment.Right.Kind == BoundKind.Literal && assignment.Right.ConstantValueOpt.Discriminator == ConstantValueTypeDiscriminator.Boolean)
Binder\DecisionDagBuilder.cs (3)
2070Debug.Assert(t.Value.Discriminator == ConstantValueTypeDiscriminator.Int32); 2085Debug.Assert(t.Value.Discriminator == ConstantValueTypeDiscriminator.Int32); 2089Debug.Assert(t.Value.Discriminator == ConstantValueTypeDiscriminator.Int32);
Binder\Semantics\Conversions\ConversionsBase.cs (1)
1921switch (value.Discriminator)
BoundTree\BoundExpressionExtensions.cs (1)
65return node is { Kind: BoundKind.Literal, ConstantValueOpt: { Discriminator: ConstantValueTypeDiscriminator.Null } };
BoundTree\BoundNode_Source.cs (1)
229switch (literal.ConstantValueOpt?.Discriminator)
CodeGen\EmitArrayInitializer.cs (2)
498if (start.ConstantValueOpt?.IsDefaultValue != true || start.ConstantValueOpt.Discriminator != ConstantValueTypeDiscriminator.Int32) 505if (length.ConstantValueOpt?.Discriminator != ConstantValueTypeDiscriminator.Int32)
CodeGen\EmitOperators.cs (1)
487Debug.Assert(constantValue.Discriminator == ConstantValueTypeDiscriminator.Boolean);
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (5)
718Debug.Assert(x.Discriminator switch 727Debug.Assert(y.Discriminator == x.Discriminator); 738(value.Discriminator == ConstantValueTypeDiscriminator.Single || value.Discriminator == ConstantValueTypeDiscriminator.Double) &&
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (1)
2137&& rightConstantValue.Discriminator == ConstantValueTypeDiscriminator.Int32
Symbols\Metadata\PE\PEFieldSymbol.cs (1)
602value.Discriminator == ConstantValueTypeDiscriminator.Decimal;
Symbols\Metadata\PE\PEParameterSymbol.cs (2)
1028if (defaultValue.Discriminator == ConstantValueTypeDiscriminator.DateTime) 1032else if (defaultValue.Discriminator == ConstantValueTypeDiscriminator.Decimal)
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (1)
Emit\NumericIntPtrTests.cs (1)
2855Assert.Equal(signed ? ConstantValueTypeDiscriminator.NInt : ConstantValueTypeDiscriminator.NUInt, value.Discriminator);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (1)
Semantics\NativeIntegerTests.cs (1)
7027Assert.Equal(signed ? ConstantValueTypeDiscriminator.NInt : ConstantValueTypeDiscriminator.NUInt, value.Discriminator);
Microsoft.CodeAnalysis.VisualBasic (24)
Analysis\FlowAnalysis\AbstractFlowPass.vb (2)
315If constantValue.Discriminator <> ConstantValueTypeDiscriminator.Boolean Then 330If constantValue.Discriminator <> ConstantValueTypeDiscriminator.Boolean Then
Binding\Binder_Invocation.vb (2)
3183If callerInfoValue.Discriminator = ConstantValueTypeDiscriminator.Int32 Then 3186Debug.Assert(callerInfoValue.Discriminator = ConstantValueTypeDiscriminator.String)
BoundTree\BoundExpressionExtensions.vb (1)
373If node.Value.Discriminator = ConstantValueTypeDiscriminator.Int32 AndAlso node.Type.SpecialType = SpecialType.System_Int32 Then
CodeGen\EmitStatement.vb (2)
676Debug.Assert(constExprValue.Discriminator = ConstantValueTypeDiscriminator.Boolean OrElse 677constExprValue.Discriminator = ConstantValueTypeDiscriminator.String OrElse
Compilation\ClsComplianceChecker.vb (1)
385Select Case parameter.ExplicitDefaultConstantValue.Discriminator
Emit\ParameterSymbolAdapter.vb (2)
178Return Not (value.Discriminator = ConstantValueTypeDiscriminator.DateTime OrElse value.Discriminator = ConstantValueTypeDiscriminator.Decimal)
Lowering\LocalRewriter\LocalRewriter_Constant.vb (2)
20If constantValue.Discriminator = ConstantValueTypeDiscriminator.Decimal Then 23ElseIf constantValue.Discriminator = ConstantValueTypeDiscriminator.DateTime Then
Semantics\CompileTimeCalculations.vb (4)
147Select Case (value.Discriminator) 159Case Else : Throw ExceptionUtilities.UnexpectedValue(value.Discriminator) 181Debug.Assert(result.Discriminator = type) 677Select Case value.Discriminator
Semantics\Conversions.vb (2)
822sourceValue.Discriminator, 832If(sourceValue.Discriminator = ConstantValueTypeDiscriminator.Double, sourceValue.DoubleValue, sourceValue.SingleValue),
Symbols\Metadata\PE\PEFieldSymbol.vb (2)
166If value IsNot Nothing AndAlso value.Discriminator = ConstantValueTypeDiscriminator.DateTime Then 171If value IsNot Nothing AndAlso value.Discriminator = ConstantValueTypeDiscriminator.Decimal Then
Symbols\Metadata\PE\PEParameterSymbol.vb (2)
372If defaultValue.Discriminator = ConstantValueTypeDiscriminator.DateTime Then 374ElseIf defaultValue.Discriminator = ConstantValueTypeDiscriminator.Decimal Then
Symbols\TypeSymbolExtensions.vb (2)
473Return discriminator <> ConstantValueTypeDiscriminator.Bad AndAlso discriminator = value.Discriminator OrElse 474(value.Discriminator = ConstantValueTypeDiscriminator.Nothing AndAlso this.IsStringType())
Microsoft.CodeAnalysis.VisualBasic.Semantic.UnitTests (23)
Semantics\Conversions.vb (23)
285Assert.Equal(If(testType.IsStringType(), ConstantValueTypeDiscriminator.Nothing, testType.GetConstantValueTypeDiscriminator()), resultValue.Discriminator) 320Assert.Equal(ConstantValueTypeDiscriminator.Int32, resultValue.Discriminator) 328Assert.Equal(ConstantValueTypeDiscriminator.Int32, resultValue.Discriminator) 353Assert.Equal(ConstantValueTypeDiscriminator.Int32, resultValue.Discriminator) 444Assert.Equal(type2.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 453Assert.Equal(type2.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 489Assert.Equal(type2.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 498Assert.Equal(type2.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 622Assert.Equal(v.Discriminator, mv.Type.GetConstantValueTypeDiscriminator()) 649Assert.Equal(numericType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 840Assert.Equal(falseValue.Discriminator, booleanType.GetConstantValueTypeDiscriminator()) 865Assert.Equal(numericType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 872Assert.Equal(falseValue.Discriminator, booleanType.GetConstantValueTypeDiscriminator()) 897Assert.Equal(numericType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 927Assert.Equal(booleanType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 935Assert.Equal(v.Discriminator, mv.Type.GetConstantValueTypeDiscriminator()) 958Assert.Equal(booleanType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 986Assert.Equal(charType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 1011Assert.Equal(charType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 1034Assert.Equal(charType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 1056Assert.Equal(stringType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator) 1182Assert.Equal(v.Discriminator, mv.Type.GetConstantValueTypeDiscriminator()) 1208Assert.Equal(numericType.GetConstantValueTypeDiscriminator(), resultValue.Discriminator)
Microsoft.CodeAnalysis.VisualBasic.Symbol.UnitTests (15)
SymbolsTests\Metadata\PE\LoadingFields.vb (15)
141Assert.Equal(ConstantValueTypeDiscriminator.Int64, Int64Field.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 147Assert.Equal(ConstantValueTypeDiscriminator.DateTime, DateTimeField.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 153Assert.Equal(ConstantValueTypeDiscriminator.Single, SingleField.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 159Assert.Equal(ConstantValueTypeDiscriminator.Double, DoubleField.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 165Assert.Equal(ConstantValueTypeDiscriminator.String, StringField.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 171Assert.Equal(ConstantValueTypeDiscriminator.Nothing, StringNullField.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 176Assert.Equal(ConstantValueTypeDiscriminator.Nothing, ObjectNullField.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 199Assert.Equal(ConstantValueTypeDiscriminator.Byte, ByteValue.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 205Assert.Equal(ConstantValueTypeDiscriminator.SByte, SByteValue.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 211Assert.Equal(ConstantValueTypeDiscriminator.UInt16, UInt16Value.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 217Assert.Equal(ConstantValueTypeDiscriminator.Int16, Int16Value.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 223Assert.Equal(ConstantValueTypeDiscriminator.UInt32, UInt32Value.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 229Assert.Equal(ConstantValueTypeDiscriminator.Int32, Int32Value.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 235Assert.Equal(ConstantValueTypeDiscriminator.UInt64, UInt64Value.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator) 241Assert.Equal(ConstantValueTypeDiscriminator.Int64, Int64Value.GetConstantValue(ConstantFieldsInProgress.Empty).Discriminator)