439 references to ConstantValueTypeDiscriminator
Microsoft.CodeAnalysis (349)
CodeGen\ILBuilderEmit.cs (17)
565ConstantValueTypeDiscriminator discriminator = value.Discriminator; 569case ConstantValueTypeDiscriminator.Null: 572case ConstantValueTypeDiscriminator.SByte: 575case ConstantValueTypeDiscriminator.Byte: 578case ConstantValueTypeDiscriminator.UInt16: 581case ConstantValueTypeDiscriminator.Char: 584case ConstantValueTypeDiscriminator.Int16: 587case ConstantValueTypeDiscriminator.Int32: 588case ConstantValueTypeDiscriminator.UInt32: 591case ConstantValueTypeDiscriminator.Int64: 592case ConstantValueTypeDiscriminator.UInt64: 595case ConstantValueTypeDiscriminator.NInt: 598case ConstantValueTypeDiscriminator.NUInt: 601case ConstantValueTypeDiscriminator.Single: 604case ConstantValueTypeDiscriminator.Double: 607case ConstantValueTypeDiscriminator.String: 610case ConstantValueTypeDiscriminator.Boolean:
CodeGen\SwitchIntegralJumpTableEmitter.cs (2)
485case ConstantValueTypeDiscriminator.Byte: return value.ByteValue; 486case ConstantValueTypeDiscriminator.UInt16: return value.UInt16Value;
CodeGen\SwitchIntegralJumpTableEmitter.SwitchBucket.cs (2)
207if (startConstant.Discriminator == ConstantValueTypeDiscriminator.Int64) 212else if (startConstant.Discriminator == ConstantValueTypeDiscriminator.UInt64)
Compilation\Expression.cs (1)
38return ConstantValue.Create(1, ConstantValueTypeDiscriminator.Int32);
ConstantValue.cs (206)
41public abstract ConstantValueTypeDiscriminator Discriminator { get; } 357var discriminator = GetDiscriminator(st); 358Debug.Assert(discriminator != ConstantValueTypeDiscriminator.Bad); 368public static ConstantValue Create(object value, ConstantValueTypeDiscriminator discriminator) 372case ConstantValueTypeDiscriminator.Null: return Null; 373case ConstantValueTypeDiscriminator.SByte: return Create((sbyte)value); 374case ConstantValueTypeDiscriminator.Byte: return Create((byte)value); 375case ConstantValueTypeDiscriminator.Int16: return Create((short)value); 376case ConstantValueTypeDiscriminator.UInt16: return Create((ushort)value); 377case ConstantValueTypeDiscriminator.Int32: return Create((int)value); 378case ConstantValueTypeDiscriminator.UInt32: return Create((uint)value); 379case ConstantValueTypeDiscriminator.Int64: return Create((long)value); 380case ConstantValueTypeDiscriminator.UInt64: return Create((ulong)value); 381case ConstantValueTypeDiscriminator.NInt: return CreateNativeInt((int)value); 382case ConstantValueTypeDiscriminator.NUInt: return CreateNativeUInt((uint)value); 383case ConstantValueTypeDiscriminator.Char: return Create((char)value); 384case ConstantValueTypeDiscriminator.Boolean: return Create((bool)value); 385case ConstantValueTypeDiscriminator.Single: 390case ConstantValueTypeDiscriminator.Double: return Create((double)value); 391case ConstantValueTypeDiscriminator.Decimal: return Create((decimal)value); 392case ConstantValueTypeDiscriminator.DateTime: return Create((DateTime)value); 393case ConstantValueTypeDiscriminator.String: return Create((string)value); 401var discriminator = GetDiscriminator(st); 402Debug.Assert(discriminator != ConstantValueTypeDiscriminator.Bad); 406public static ConstantValue Default(ConstantValueTypeDiscriminator discriminator) 410case ConstantValueTypeDiscriminator.Bad: return Bad; 412case ConstantValueTypeDiscriminator.SByte: return ConstantValueDefault.SByte; 413case ConstantValueTypeDiscriminator.Byte: return ConstantValueDefault.Byte; 414case ConstantValueTypeDiscriminator.Int16: return ConstantValueDefault.Int16; 415case ConstantValueTypeDiscriminator.UInt16: return ConstantValueDefault.UInt16; 416case ConstantValueTypeDiscriminator.Int32: return ConstantValueDefault.Int32; 417case ConstantValueTypeDiscriminator.UInt32: return ConstantValueDefault.UInt32; 418case ConstantValueTypeDiscriminator.Int64: return ConstantValueDefault.Int64; 419case ConstantValueTypeDiscriminator.UInt64: return ConstantValueDefault.UInt64; 420case ConstantValueTypeDiscriminator.NInt: return ConstantValueDefault.NInt; 421case ConstantValueTypeDiscriminator.NUInt: return ConstantValueDefault.NUInt; 422case ConstantValueTypeDiscriminator.Char: return ConstantValueDefault.Char; 423case ConstantValueTypeDiscriminator.Boolean: return ConstantValueDefault.Boolean; 424case ConstantValueTypeDiscriminator.Single: return ConstantValueDefault.Single; 425case ConstantValueTypeDiscriminator.Double: return ConstantValueDefault.Double; 426case ConstantValueTypeDiscriminator.Decimal: return ConstantValueDefault.Decimal; 427case ConstantValueTypeDiscriminator.DateTime: return ConstantValueDefault.DateTime; 429case ConstantValueTypeDiscriminator.Null: 430case ConstantValueTypeDiscriminator.String: return Null; 436internal static ConstantValueTypeDiscriminator GetDiscriminator(SpecialType st) 440case SpecialType.System_SByte: return ConstantValueTypeDiscriminator.SByte; 441case SpecialType.System_Byte: return ConstantValueTypeDiscriminator.Byte; 442case SpecialType.System_Int16: return ConstantValueTypeDiscriminator.Int16; 443case SpecialType.System_UInt16: return ConstantValueTypeDiscriminator.UInt16; 444case SpecialType.System_Int32: return ConstantValueTypeDiscriminator.Int32; 445case SpecialType.System_UInt32: return ConstantValueTypeDiscriminator.UInt32; 446case SpecialType.System_Int64: return ConstantValueTypeDiscriminator.Int64; 447case SpecialType.System_UInt64: return ConstantValueTypeDiscriminator.UInt64; 448case SpecialType.System_IntPtr: return ConstantValueTypeDiscriminator.NInt; 449case SpecialType.System_UIntPtr: return ConstantValueTypeDiscriminator.NUInt; 450case SpecialType.System_Char: return ConstantValueTypeDiscriminator.Char; 451case SpecialType.System_Boolean: return ConstantValueTypeDiscriminator.Boolean; 452case SpecialType.System_Single: return ConstantValueTypeDiscriminator.Single; 453case SpecialType.System_Double: return ConstantValueTypeDiscriminator.Double; 454case SpecialType.System_Decimal: return ConstantValueTypeDiscriminator.Decimal; 455case SpecialType.System_DateTime: return ConstantValueTypeDiscriminator.DateTime; 456case SpecialType.System_String: return ConstantValueTypeDiscriminator.String; 459return ConstantValueTypeDiscriminator.Bad; 466ConstantValueTypeDiscriminator.SByte => "sbyte", 467ConstantValueTypeDiscriminator.Byte => "byte", 468ConstantValueTypeDiscriminator.Int16 => "short", 469ConstantValueTypeDiscriminator.UInt16 => "ushort", 470ConstantValueTypeDiscriminator.Int32 => "int", 471ConstantValueTypeDiscriminator.NInt => "nint", 472ConstantValueTypeDiscriminator.UInt32 => "uint", 473ConstantValueTypeDiscriminator.NUInt => "nuint", 474ConstantValueTypeDiscriminator.Int64 => "long", 475ConstantValueTypeDiscriminator.UInt64 => "ulong", 476ConstantValueTypeDiscriminator.Char => "char", 477ConstantValueTypeDiscriminator.Boolean => "bool", 478ConstantValueTypeDiscriminator.Single => "float", 479ConstantValueTypeDiscriminator.Double => "double", 480ConstantValueTypeDiscriminator.String => "string", 481ConstantValueTypeDiscriminator.Decimal => "decimal", 482ConstantValueTypeDiscriminator.DateTime => "DateTime", 483ConstantValueTypeDiscriminator.Null or ConstantValueTypeDiscriminator.Bad => throw ExceptionUtilities.UnexpectedValue(Discriminator), 488private static SpecialType GetSpecialType(ConstantValueTypeDiscriminator discriminator) 492case ConstantValueTypeDiscriminator.SByte: return SpecialType.System_SByte; 493case ConstantValueTypeDiscriminator.Byte: return SpecialType.System_Byte; 494case ConstantValueTypeDiscriminator.Int16: return SpecialType.System_Int16; 495case ConstantValueTypeDiscriminator.UInt16: return SpecialType.System_UInt16; 496case ConstantValueTypeDiscriminator.Int32: return SpecialType.System_Int32; 497case ConstantValueTypeDiscriminator.UInt32: return SpecialType.System_UInt32; 498case ConstantValueTypeDiscriminator.Int64: return SpecialType.System_Int64; 499case ConstantValueTypeDiscriminator.UInt64: return SpecialType.System_UInt64; 500case ConstantValueTypeDiscriminator.NInt: return SpecialType.System_IntPtr; 501case ConstantValueTypeDiscriminator.NUInt: return SpecialType.System_UIntPtr; 502case ConstantValueTypeDiscriminator.Char: return SpecialType.System_Char; 503case ConstantValueTypeDiscriminator.Boolean: return SpecialType.System_Boolean; 504case ConstantValueTypeDiscriminator.Single: return SpecialType.System_Single; 505case ConstantValueTypeDiscriminator.Double: return SpecialType.System_Double; 506case ConstantValueTypeDiscriminator.Decimal: return SpecialType.System_Decimal; 507case ConstantValueTypeDiscriminator.DateTime: return SpecialType.System_DateTime; 508case ConstantValueTypeDiscriminator.String: return SpecialType.System_String; 519case ConstantValueTypeDiscriminator.Bad: return null; 520case ConstantValueTypeDiscriminator.Null: return null; 521case ConstantValueTypeDiscriminator.SByte: return Boxes.Box(SByteValue); 522case ConstantValueTypeDiscriminator.Byte: return Boxes.Box(ByteValue); 523case ConstantValueTypeDiscriminator.Int16: return Boxes.Box(Int16Value); 524case ConstantValueTypeDiscriminator.UInt16: return Boxes.Box(UInt16Value); 525case ConstantValueTypeDiscriminator.Int32: return Boxes.Box(Int32Value); 526case ConstantValueTypeDiscriminator.UInt32: return Boxes.Box(UInt32Value); 527case ConstantValueTypeDiscriminator.Int64: return Boxes.Box(Int64Value); 528case ConstantValueTypeDiscriminator.UInt64: return Boxes.Box(UInt64Value); 529case ConstantValueTypeDiscriminator.NInt: return Boxes.Box(Int32Value); 530case ConstantValueTypeDiscriminator.NUInt: return Boxes.Box(UInt32Value); 531case ConstantValueTypeDiscriminator.Char: return Boxes.Box(CharValue); 532case ConstantValueTypeDiscriminator.Boolean: return Boxes.Box(BooleanValue); 533case ConstantValueTypeDiscriminator.Single: return Boxes.Box(SingleValue); 534case ConstantValueTypeDiscriminator.Double: return Boxes.Box(DoubleValue); 535case ConstantValueTypeDiscriminator.Decimal: return Boxes.Box(DecimalValue); 536case ConstantValueTypeDiscriminator.DateTime: return DateTimeValue; 537case ConstantValueTypeDiscriminator.String: return StringValue; 543public static bool IsIntegralType(ConstantValueTypeDiscriminator discriminator) 547case ConstantValueTypeDiscriminator.SByte: 548case ConstantValueTypeDiscriminator.Byte: 549case ConstantValueTypeDiscriminator.Int16: 550case ConstantValueTypeDiscriminator.UInt16: 551case ConstantValueTypeDiscriminator.Int32: 552case ConstantValueTypeDiscriminator.UInt32: 553case ConstantValueTypeDiscriminator.Int64: 554case ConstantValueTypeDiscriminator.UInt64: 555case ConstantValueTypeDiscriminator.NInt: 556case ConstantValueTypeDiscriminator.NUInt: 578case ConstantValueTypeDiscriminator.SByte: 580case ConstantValueTypeDiscriminator.Int16: 582case ConstantValueTypeDiscriminator.Int32: 583case ConstantValueTypeDiscriminator.NInt: 585case ConstantValueTypeDiscriminator.Int64: 587case ConstantValueTypeDiscriminator.Single: 589case ConstantValueTypeDiscriminator.Double: 591case ConstantValueTypeDiscriminator.Decimal: 606case ConstantValueTypeDiscriminator.SByte: 607case ConstantValueTypeDiscriminator.Int16: 608case ConstantValueTypeDiscriminator.Int32: 609case ConstantValueTypeDiscriminator.Int64: 610case ConstantValueTypeDiscriminator.Single: 611case ConstantValueTypeDiscriminator.Double: 612case ConstantValueTypeDiscriminator.Decimal: 613case ConstantValueTypeDiscriminator.Byte: 614case ConstantValueTypeDiscriminator.UInt16: 615case ConstantValueTypeDiscriminator.UInt32: 616case ConstantValueTypeDiscriminator.UInt64: 617case ConstantValueTypeDiscriminator.NInt: 618case ConstantValueTypeDiscriminator.NUInt: 627public static bool IsUnsignedIntegralType(ConstantValueTypeDiscriminator discriminator) 631case ConstantValueTypeDiscriminator.Byte: 632case ConstantValueTypeDiscriminator.UInt16: 633case ConstantValueTypeDiscriminator.UInt32: 634case ConstantValueTypeDiscriminator.UInt64: 635case ConstantValueTypeDiscriminator.NUInt: 651public static bool IsBooleanType(ConstantValueTypeDiscriminator discriminator) 653return discriminator == ConstantValueTypeDiscriminator.Boolean; 660return this.Discriminator == ConstantValueTypeDiscriminator.Boolean; 664public static bool IsCharType(ConstantValueTypeDiscriminator discriminator) 666return discriminator == ConstantValueTypeDiscriminator.Char; 673return this.Discriminator == ConstantValueTypeDiscriminator.Char; 677public static bool IsStringType(ConstantValueTypeDiscriminator discriminator) 679return discriminator == ConstantValueTypeDiscriminator.String; 687return this.Discriminator == ConstantValueTypeDiscriminator.String; 691public static bool IsDecimalType(ConstantValueTypeDiscriminator discriminator) 693return discriminator == ConstantValueTypeDiscriminator.Decimal; 700return this.Discriminator == ConstantValueTypeDiscriminator.Decimal; 704public static bool IsDateTimeType(ConstantValueTypeDiscriminator discriminator) 706return discriminator == ConstantValueTypeDiscriminator.DateTime; 713return this.Discriminator == ConstantValueTypeDiscriminator.DateTime; 717public static bool IsFloatingType(ConstantValueTypeDiscriminator discriminator) 719return discriminator == ConstantValueTypeDiscriminator.Double || 720discriminator == ConstantValueTypeDiscriminator.Single; 727return this.Discriminator == ConstantValueTypeDiscriminator.Double || 728this.Discriminator == ConstantValueTypeDiscriminator.Single; 736return this.Discriminator == ConstantValueTypeDiscriminator.Bad; 760case ConstantValueTypeDiscriminator.Boolean: 764case ConstantValueTypeDiscriminator.SByte: 768case ConstantValueTypeDiscriminator.Byte: 772case ConstantValueTypeDiscriminator.Char: 773case ConstantValueTypeDiscriminator.Int16: 777case ConstantValueTypeDiscriminator.UInt16: 781case ConstantValueTypeDiscriminator.Single: 785case ConstantValueTypeDiscriminator.Int32: 789case ConstantValueTypeDiscriminator.UInt32: 793case ConstantValueTypeDiscriminator.Double: 797case ConstantValueTypeDiscriminator.Int64: 801case ConstantValueTypeDiscriminator.UInt64: 819ConstantValueTypeDiscriminator.SByte => SByteValue.ToString(provider), 820ConstantValueTypeDiscriminator.Byte => ByteValue.ToString(provider), 821ConstantValueTypeDiscriminator.Int16 => Int16Value.ToString(provider), 822ConstantValueTypeDiscriminator.UInt16 => UInt16Value.ToString(provider), 823ConstantValueTypeDiscriminator.NInt or ConstantValueTypeDiscriminator.Int32 => Int32Value.ToString(provider), 824ConstantValueTypeDiscriminator.NUInt or ConstantValueTypeDiscriminator.UInt32 => UInt32Value.ToString(provider), 825ConstantValueTypeDiscriminator.UInt64 => UInt64Value.ToString(provider), 826ConstantValueTypeDiscriminator.Int64 => Int64Value.ToString(provider), 827ConstantValueTypeDiscriminator.Char => CharValue.ToString(provider), 828ConstantValueTypeDiscriminator.Boolean => BooleanValue.ToString(provider), 829ConstantValueTypeDiscriminator.Single => SingleValue.ToString(provider), 830ConstantValueTypeDiscriminator.Double => DoubleValue.ToString(provider), 831ConstantValueTypeDiscriminator.Decimal => DecimalValue.ToString(provider), 832ConstantValueTypeDiscriminator.DateTime => DateTimeValue.ToString(provider),
ConstantValueSpecialized.cs (59)
34public override ConstantValueTypeDiscriminator Discriminator 38return ConstantValueTypeDiscriminator.Bad; 75public override ConstantValueTypeDiscriminator Discriminator 79return ConstantValueTypeDiscriminator.Null; 159public override ConstantValueTypeDiscriminator Discriminator 163return ConstantValueTypeDiscriminator.String; 238public override ConstantValueTypeDiscriminator Discriminator 242return ConstantValueTypeDiscriminator.Decimal; 279public override ConstantValueTypeDiscriminator Discriminator 283return ConstantValueTypeDiscriminator.DateTime; 315private readonly ConstantValueTypeDiscriminator _discriminator; 317public ConstantValueDiscriminated(ConstantValueTypeDiscriminator discriminator) 322public override ConstantValueTypeDiscriminator Discriminator 339public static readonly ConstantValueDefault SByte = new ConstantValueDefault(ConstantValueTypeDiscriminator.SByte); 340public static readonly ConstantValueDefault Byte = new ConstantValueDefault(ConstantValueTypeDiscriminator.Byte); 341public static readonly ConstantValueDefault Int16 = new ConstantValueDefault(ConstantValueTypeDiscriminator.Int16); 342public static readonly ConstantValueDefault UInt16 = new ConstantValueDefault(ConstantValueTypeDiscriminator.UInt16); 343public static readonly ConstantValueDefault Int32 = new ConstantValueDefault(ConstantValueTypeDiscriminator.Int32); 344public static readonly ConstantValueDefault UInt32 = new ConstantValueDefault(ConstantValueTypeDiscriminator.UInt32); 345public static readonly ConstantValueDefault Int64 = new ConstantValueDefault(ConstantValueTypeDiscriminator.Int64); 346public static readonly ConstantValueDefault UInt64 = new ConstantValueDefault(ConstantValueTypeDiscriminator.UInt64); 347public static readonly ConstantValueDefault NInt = new ConstantValueDefault(ConstantValueTypeDiscriminator.NInt); 348public static readonly ConstantValueDefault NUInt = new ConstantValueDefault(ConstantValueTypeDiscriminator.NUInt); 349public static readonly ConstantValueDefault Char = new ConstantValueDefault(ConstantValueTypeDiscriminator.Char); 353public static readonly ConstantValueDefault DateTime = new ConstantValueDefault(ConstantValueTypeDiscriminator.DateTime); 354public static readonly ConstantValueDefault Boolean = new ConstantValueDefault(ConstantValueTypeDiscriminator.Boolean); 356protected ConstantValueDefault(ConstantValueTypeDiscriminator discriminator) 450: base(ConstantValueTypeDiscriminator.Decimal) 473: base(ConstantValueTypeDiscriminator.Double) 496: base(ConstantValueTypeDiscriminator.Single) 518public static readonly ConstantValueOne SByte = new ConstantValueOne(ConstantValueTypeDiscriminator.SByte); 519public static readonly ConstantValueOne Byte = new ConstantValueOne(ConstantValueTypeDiscriminator.Byte); 520public static readonly ConstantValueOne Int16 = new ConstantValueOne(ConstantValueTypeDiscriminator.Int16); 521public static readonly ConstantValueOne UInt16 = new ConstantValueOne(ConstantValueTypeDiscriminator.UInt16); 522public static readonly ConstantValueOne Int32 = new ConstantValueOne(ConstantValueTypeDiscriminator.Int32); 523public static readonly ConstantValueOne UInt32 = new ConstantValueOne(ConstantValueTypeDiscriminator.UInt32); 524public static readonly ConstantValueOne Int64 = new ConstantValueOne(ConstantValueTypeDiscriminator.Int64); 525public static readonly ConstantValueOne UInt64 = new ConstantValueOne(ConstantValueTypeDiscriminator.UInt64); 526public static readonly ConstantValueOne NInt = new ConstantValueOne(ConstantValueTypeDiscriminator.NInt); 527public static readonly ConstantValueOne NUInt = new ConstantValueOne(ConstantValueTypeDiscriminator.NUInt); 528public static readonly ConstantValueOne Single = new ConstantValueOne(ConstantValueTypeDiscriminator.Single); 529public static readonly ConstantValueOne Double = new ConstantValueOne(ConstantValueTypeDiscriminator.Double); 531public static readonly ConstantValueOne Boolean = new ConstantValueOne(ConstantValueTypeDiscriminator.Boolean); 532public static readonly ConstantValueOne Char = new ConstantValueOne(ConstantValueTypeDiscriminator.Char); 534protected ConstantValueOne(ConstantValueTypeDiscriminator discriminator) 666: base(ConstantValueTypeDiscriminator.Decimal) 691: base(ConstantValueTypeDiscriminator.SByte) 697: base(ConstantValueTypeDiscriminator.Byte) 734: base(ConstantValueTypeDiscriminator.Int16) 740: base(ConstantValueTypeDiscriminator.UInt16) 746: base(ConstantValueTypeDiscriminator.Char) 791: base(ConstantValueTypeDiscriminator.Int32) 797: base(ConstantValueTypeDiscriminator.UInt32) 834: base(ConstantValueTypeDiscriminator.Int64) 840: base(ConstantValueTypeDiscriminator.UInt64) 878: base(ConstantValueTypeDiscriminator.NInt) 884: base(ConstantValueTypeDiscriminator.NUInt) 921: base(ConstantValueTypeDiscriminator.Double) 959: base(ConstantValueTypeDiscriminator.Single)
CryptographicHashProvider.cs (5)
244case ConstantValueTypeDiscriminator.Null: 247case ConstantValueTypeDiscriminator.String: 250case ConstantValueTypeDiscriminator.NInt: 253case ConstantValueTypeDiscriminator.NUInt: 256case ConstantValueTypeDiscriminator.Decimal:
EnumConstantHelper.cs (8)
30case ConstantValueTypeDiscriminator.SByte: 40case ConstantValueTypeDiscriminator.Byte: 50case ConstantValueTypeDiscriminator.Int16: 60case ConstantValueTypeDiscriminator.UInt16: 70case ConstantValueTypeDiscriminator.Int32: 80case ConstantValueTypeDiscriminator.UInt32: 90case ConstantValueTypeDiscriminator.Int64: 100case ConstantValueTypeDiscriminator.UInt64:
Operations\ControlFlowGraphBuilder.cs (1)
5089Debug.Assert(value.Discriminator != ConstantValueTypeDiscriminator.Bad);
PrimitiveTypeCodeExtensions.cs (14)
70public static ConstantValueTypeDiscriminator GetConstantValueTypeDiscriminator(this Cci.PrimitiveTypeCode type) 74case Cci.PrimitiveTypeCode.Int8: return ConstantValueTypeDiscriminator.SByte; 75case Cci.PrimitiveTypeCode.UInt8: return ConstantValueTypeDiscriminator.Byte; 76case Cci.PrimitiveTypeCode.Int16: return ConstantValueTypeDiscriminator.Int16; 77case Cci.PrimitiveTypeCode.UInt16: return ConstantValueTypeDiscriminator.UInt16; 78case Cci.PrimitiveTypeCode.Int32: return ConstantValueTypeDiscriminator.Int32; 79case Cci.PrimitiveTypeCode.UInt32: return ConstantValueTypeDiscriminator.UInt32; 80case Cci.PrimitiveTypeCode.Int64: return ConstantValueTypeDiscriminator.Int64; 81case Cci.PrimitiveTypeCode.UInt64: return ConstantValueTypeDiscriminator.UInt64; 82case Cci.PrimitiveTypeCode.Char: return ConstantValueTypeDiscriminator.Char; 83case Cci.PrimitiveTypeCode.Boolean: return ConstantValueTypeDiscriminator.Boolean; 84case Cci.PrimitiveTypeCode.Float32: return ConstantValueTypeDiscriminator.Single; 85case Cci.PrimitiveTypeCode.Float64: return ConstantValueTypeDiscriminator.Double; 86case Cci.PrimitiveTypeCode.String: return ConstantValueTypeDiscriminator.String;
SwitchConstantValueHelper.cs (34)
21case ConstantValueTypeDiscriminator.Null: 22case ConstantValueTypeDiscriminator.SByte: 23case ConstantValueTypeDiscriminator.Byte: 24case ConstantValueTypeDiscriminator.Int16: 25case ConstantValueTypeDiscriminator.UInt16: 26case ConstantValueTypeDiscriminator.Int32: 27case ConstantValueTypeDiscriminator.UInt32: 28case ConstantValueTypeDiscriminator.Int64: 29case ConstantValueTypeDiscriminator.UInt64: 30case ConstantValueTypeDiscriminator.Char: 31case ConstantValueTypeDiscriminator.Boolean: 32case ConstantValueTypeDiscriminator.String: 74case ConstantValueTypeDiscriminator.SByte: 75case ConstantValueTypeDiscriminator.Int16: 76case ConstantValueTypeDiscriminator.Int32: 77case ConstantValueTypeDiscriminator.Int64: 80case ConstantValueTypeDiscriminator.Boolean: 81case ConstantValueTypeDiscriminator.Byte: 82case ConstantValueTypeDiscriminator.UInt16: 83case ConstantValueTypeDiscriminator.UInt32: 84case ConstantValueTypeDiscriminator.UInt64: 85case ConstantValueTypeDiscriminator.Char: 88case ConstantValueTypeDiscriminator.String: 137case ConstantValueTypeDiscriminator.SByte: 138case ConstantValueTypeDiscriminator.Int16: 139case ConstantValueTypeDiscriminator.Int32: 140case ConstantValueTypeDiscriminator.Int64: 143case ConstantValueTypeDiscriminator.Boolean: 144case ConstantValueTypeDiscriminator.Byte: 145case ConstantValueTypeDiscriminator.UInt16: 146case ConstantValueTypeDiscriminator.UInt32: 147case ConstantValueTypeDiscriminator.UInt64: 148case ConstantValueTypeDiscriminator.Char: 151case ConstantValueTypeDiscriminator.String:
Microsoft.CodeAnalysis.CSharp (81)
Binder\Binder_Conversions.cs (29)
3313case ConstantValueTypeDiscriminator.Byte: 3333case ConstantValueTypeDiscriminator.Char: 3353case ConstantValueTypeDiscriminator.UInt16: 3373case ConstantValueTypeDiscriminator.UInt32: 3393case ConstantValueTypeDiscriminator.UInt64: 3413case ConstantValueTypeDiscriminator.NUInt: 3432case ConstantValueTypeDiscriminator.SByte: 3452case ConstantValueTypeDiscriminator.Int16: 3472case ConstantValueTypeDiscriminator.Int32: 3492case ConstantValueTypeDiscriminator.Int64: 3512case ConstantValueTypeDiscriminator.NInt: 3532case ConstantValueTypeDiscriminator.Single: 3533case ConstantValueTypeDiscriminator.Double: 3553case SpecialType.System_Decimal: return (value.Discriminator == ConstantValueTypeDiscriminator.Single) ? (decimal)(float)doubleValue : (decimal)doubleValue; 3556case ConstantValueTypeDiscriminator.Decimal: 3666case ConstantValueTypeDiscriminator.SByte: return (decimal)value.SByteValue; 3667case ConstantValueTypeDiscriminator.Int16: return (decimal)value.Int16Value; 3668case ConstantValueTypeDiscriminator.Int32: return (decimal)value.Int32Value; 3669case ConstantValueTypeDiscriminator.Int64: return (decimal)value.Int64Value; 3670case ConstantValueTypeDiscriminator.NInt: return (decimal)value.Int32Value; 3671case ConstantValueTypeDiscriminator.Byte: return (decimal)value.ByteValue; 3672case ConstantValueTypeDiscriminator.Char: return (decimal)value.CharValue; 3673case ConstantValueTypeDiscriminator.UInt16: return (decimal)value.UInt16Value; 3674case ConstantValueTypeDiscriminator.UInt32: return (decimal)value.UInt32Value; 3675case ConstantValueTypeDiscriminator.UInt64: return (decimal)value.UInt64Value; 3676case ConstantValueTypeDiscriminator.NUInt: return (decimal)value.UInt32Value; 3677case ConstantValueTypeDiscriminator.Single: 3678case ConstantValueTypeDiscriminator.Double: return value.DoubleValue; 3679case ConstantValueTypeDiscriminator.Decimal: return value.DecimalValue;
Binder\Binder_Statements.cs (1)
2702if (assignment.Right.Kind == BoundKind.Literal && assignment.Right.ConstantValueOpt.Discriminator == ConstantValueTypeDiscriminator.Boolean)
Binder\DecisionDagBuilder.cs (3)
2224Debug.Assert(t.Value.Discriminator == ConstantValueTypeDiscriminator.Int32); 2239Debug.Assert(t.Value.Discriminator == ConstantValueTypeDiscriminator.Int32); 2243Debug.Assert(t.Value.Discriminator == ConstantValueTypeDiscriminator.Int32);
Binder\Semantics\Conversions\ConversionsBase.cs (13)
2070case ConstantValueTypeDiscriminator.SByte: 2072case ConstantValueTypeDiscriminator.Byte: 2074case ConstantValueTypeDiscriminator.Int16: 2076case ConstantValueTypeDiscriminator.Int32: 2077case ConstantValueTypeDiscriminator.NInt: 2079case ConstantValueTypeDiscriminator.Int64: 2081case ConstantValueTypeDiscriminator.UInt16: 2083case ConstantValueTypeDiscriminator.UInt32: 2084case ConstantValueTypeDiscriminator.NUInt: 2086case ConstantValueTypeDiscriminator.UInt64: 2088case ConstantValueTypeDiscriminator.Single: 2089case ConstantValueTypeDiscriminator.Double: 2091case ConstantValueTypeDiscriminator.Decimal:
BoundTree\BoundExpressionExtensions.cs (1)
83return node is { Kind: BoundKind.Literal, ConstantValueOpt: { Discriminator: ConstantValueTypeDiscriminator.Null } };
BoundTree\BoundNode_Source.cs (1)
246case ConstantValueTypeDiscriminator.String:
CodeGen\EmitArrayInitializer.cs (2)
519if (start.ConstantValueOpt?.IsDefaultValue != true || start.ConstantValueOpt.Discriminator != ConstantValueTypeDiscriminator.Int32) 526if (length.ConstantValueOpt?.Discriminator != ConstantValueTypeDiscriminator.Int32)
CodeGen\EmitOperators.cs (2)
501Debug.Assert(constantValue.Discriminator == ConstantValueTypeDiscriminator.Boolean); 535Debug.Assert(constantValue.Discriminator == ConstantValueTypeDiscriminator.Boolean);
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (7)
719ConstantValueTypeDiscriminator.Decimal => true, 720ConstantValueTypeDiscriminator.Single => true, 721ConstantValueTypeDiscriminator.Double => true, 722ConstantValueTypeDiscriminator.NInt => true, 723ConstantValueTypeDiscriminator.NUInt => true, 737(value.Discriminator == ConstantValueTypeDiscriminator.Single || value.Discriminator == ConstantValueTypeDiscriminator.Double) &&
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (12)
1130Discriminator: ConstantValueTypeDiscriminator.Boolean 1131or ConstantValueTypeDiscriminator.Double 1132or ConstantValueTypeDiscriminator.Int32 1133or ConstantValueTypeDiscriminator.Int64 1134or ConstantValueTypeDiscriminator.NInt 1135or ConstantValueTypeDiscriminator.NUInt 1136or ConstantValueTypeDiscriminator.Single 1137or ConstantValueTypeDiscriminator.UInt32 1138or ConstantValueTypeDiscriminator.UInt64 2109return MakeLiteral(syntax, ConstantValue.Create(rewrittenExpr.ConstantValueOpt.IsNull, ConstantValueTypeDiscriminator.Boolean), boolType); 2111return MakeLiteral(syntax, ConstantValue.Create(!rewrittenExpr.ConstantValueOpt.IsNull, ConstantValueTypeDiscriminator.Boolean), boolType); 2235&& rightConstantValue.Discriminator == ConstantValueTypeDiscriminator.Int32
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (2)
1085constantValue: ConstantValue.Create(dimension, ConstantValueTypeDiscriminator.Int32), 1139constantValue: ConstantValue.Create(dimension, ConstantValueTypeDiscriminator.Int32),
Lowering\SyntheticBoundNodeFactory.cs (2)
1781return Literal(ConstantValue.Create(rewrittenExpr.ConstantValueOpt.IsNull, ConstantValueTypeDiscriminator.Boolean), boolType); 1783return Literal(ConstantValue.Create(rewrittenExpr.ConstantValueOpt.IsNull, ConstantValueTypeDiscriminator.Boolean), boolType);
Symbols\Metadata\PE\PEFieldSymbol.cs (1)
604value.Discriminator == ConstantValueTypeDiscriminator.Decimal;
Symbols\Metadata\PE\PEParameterSymbol.cs (2)
1074if (defaultValue.Discriminator == ConstantValueTypeDiscriminator.DateTime) 1078else if (defaultValue.Discriminator == ConstantValueTypeDiscriminator.Decimal)
Symbols\Source\SourceComplexParameterSymbol.cs (3)
982var constantValueDiscriminator = ConstantValue.GetDiscriminator(specialType); 984if (constantValueDiscriminator == ConstantValueTypeDiscriminator.Bad) 990constantValueDiscriminator = ConstantValueTypeDiscriminator.Null;
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (2)
Emit\NumericIntPtrTests.cs (2)
2895Assert.Equal(signed ? ConstantValueTypeDiscriminator.NInt : ConstantValueTypeDiscriminator.NUInt, value.Discriminator);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (2)
Semantics\NativeIntegerTests.cs (2)
7058Assert.Equal(signed ? ConstantValueTypeDiscriminator.NInt : ConstantValueTypeDiscriminator.NUInt, value.Discriminator);
Microsoft.CodeAnalysis.UnitTests (5)
CorLibTypesTests.cs (5)
95Assert.Throws<InvalidOperationException>(() => { ConstantValue.Create(null, ConstantValueTypeDiscriminator.Bad); }); 106var cvNull = ConstantValue.Create(null, ConstantValueTypeDiscriminator.Null); 157Assert.Equal(ConstantValue.Bad, ConstantValue.Default(ConstantValueTypeDiscriminator.Bad)); 243var cv = ConstantValue.Create(null, ConstantValueTypeDiscriminator.Null); 246cv = ConstantValue.Create(null, ConstantValueTypeDiscriminator.String);