1868 references to ConversionKind
Microsoft.CodeAnalysis.CSharp (757)
Binder\Binder.ValueChecks.cs (7)
787if (conversion.ConversionKind == ConversionKind.Unboxing) 4444Debug.Assert(conversion.ConversionKind != ConversionKind.StackAllocToSpanType, "StackAllocToSpanType unexpected"); 4446if (conversion.ConversionKind == ConversionKind.InterpolatedStringHandler) 4451if (conversion.ConversionKind == ConversionKind.CollectionExpression) 5255Debug.Assert(conversion.ConversionKind != ConversionKind.StackAllocToSpanType, "StackAllocToSpanType unexpected"); 5257if (conversion.ConversionKind == ConversionKind.InterpolatedStringHandler) 5262if (conversion.ConversionKind == ConversionKind.CollectionExpression)
Binder\Binder_Conversions.cs (25)
143if (conversion.Kind == ConversionKind.FunctionType) 159if (conversion.Kind == ConversionKind.SwitchExpression) 174if (conversion.Kind == ConversionKind.ConditionalExpression) 189if (conversion.Kind == ConversionKind.InterpolatedString) 196if (conversion.Kind == ConversionKind.InterpolatedStringHandler) 270if (conversion.Kind == ConversionKind.DefaultLiteral) 280if (conversion.Kind is ConversionKind.ImplicitReference or ConversionKind.ExplicitReference && 824Debug.Assert(conversion.Kind is ConversionKind.NoConversion); 1921case ConversionKind.Identity: 1922case ConversionKind.ImplicitReference: 1923case ConversionKind.Boxing: 2183Debug.Assert(conversion.Kind == ConversionKind.FunctionType); 2424case ConversionKind.StackAllocToPointerType: 2428case ConversionKind.StackAllocToSpanType: 3145if (conversion.Kind == ConversionKind.DefaultLiteral) 3166case ConversionKind.Identity: 3180case ConversionKind.NullLiteral: 3183case ConversionKind.ImplicitConstant: 3186case ConversionKind.ExplicitNumeric: 3187case ConversionKind.ImplicitNumeric: 3188case ConversionKind.ExplicitEnumeration: 3189case ConversionKind.ImplicitEnumeration: 3201case ConversionKind.ExplicitReference: 3202case ConversionKind.ImplicitReference:
Binder\Binder_Deconstruct.cs (2)
308Debug.Assert(nestedConversion.Kind == ConversionKind.Deconstruction); 341conversion = new Conversion(ConversionKind.Deconstruction, deconstructMethod, nestedConversions.ToImmutableAndFree());
Binder\Binder_Operators.cs (49)
490if (conversion.Kind is not ConversionKind.Identity) 492Debug.Assert(conversion.Kind is ConversionKind.ImplicitReference); 3446if (conversion.Kind is not ConversionKind.Identity) 3448Debug.Assert(conversion.Kind is ConversionKind.ImplicitReference); 4698return new BoundIsOperator(node, operand, typeExpression, ConversionKind.NoConversion, resultType, hasErrors: true); 4780ConversionKind conversionKind, 4815ConversionKind conversionKind, 4869case ConversionKind.ImplicitSpan: 4870case ConversionKind.ExplicitSpan: 4871case ConversionKind.NoConversion: 4985case ConversionKind.ImplicitNumeric: 4986case ConversionKind.ExplicitNumeric: 4987case ConversionKind.ImplicitEnumeration: 4989case ConversionKind.ImplicitConstant: 4990case ConversionKind.ImplicitUserDefined: 4991case ConversionKind.ExplicitUserDefined: 4992case ConversionKind.IntPtr: 4993case ConversionKind.ExplicitTuple: 4994case ConversionKind.ImplicitTuple: 5010case ConversionKind.ExplicitEnumeration: 5015goto case ConversionKind.NoConversion; 5020case ConversionKind.ExplicitNullable: 5051case ConversionKind.ImplicitReference: 5054case ConversionKind.ExplicitReference: 5055case ConversionKind.Unboxing: 5062case ConversionKind.Identity: 5069case ConversionKind.Boxing: 5086case ConversionKind.ImplicitNullable: 5099case ConversionKind.ImplicitDynamic: 5100case ConversionKind.ExplicitDynamic: 5101case ConversionKind.ExplicitPointerToInteger: 5102case ConversionKind.ExplicitPointerToPointer: 5103case ConversionKind.ImplicitPointerToVoid: 5104case ConversionKind.ExplicitIntegerToPointer: 5105case ConversionKind.ImplicitNullToPointer: 5106case ConversionKind.AnonymousFunction: 5107case ConversionKind.NullLiteral: 5108case ConversionKind.DefaultLiteral: 5109case ConversionKind.MethodGroup: 5277ConversionKind conversionKind, 5303case ConversionKind.ImplicitReference: 5304case ConversionKind.Boxing: 5305case ConversionKind.ImplicitNullable: 5306case ConversionKind.Identity: 5307case ConversionKind.ExplicitNullable: 5308case ConversionKind.ExplicitReference: 5309case ConversionKind.Unboxing: 5339ConversionKind conversionKind, 5368internal static ConstantValue GetAsOperatorConstantResult(TypeSymbol operandType, TypeSymbol targetType, ConversionKind conversionKind, ConstantValue operandConstantValue)
Binder\Binder_Patterns.cs (4)
697else if ((conversion.ConversionKind == ConversionKind.Boxing || conversion.ConversionKind == ConversionKind.ImplicitReference) 707else if (conversion.ConversionKind == ConversionKind.ImplicitNullToPointer || 708(conversion.ConversionKind == ConversionKind.NoConversion && convertedExpression.Type?.IsErrorType() == true))
Binder\Binder_Statements.cs (4)
1963if (conversion.Kind != ConversionKind.Identity) 2265else if (conversion.Kind == ConversionKind.ExplicitNumeric && sourceConstantValueOpt != null && sourceConstantValueOpt != ConstantValue.Bad && 2693if (conversion.Kind == ConversionKind.Identity) 3178if (conversion.Kind != ConversionKind.Identity)
Binder\ForEachLoopBinder.cs (2)
485if (elementConversionClassification.Kind != ConversionKind.Identity && IterationVariable.RefKind is RefKind.Ref or RefKind.RefReadOnly) 589(collectionConversionClassification.Kind == ConversionKind.ExplicitReference && collectionExpr.Type.SpecialType == SpecialType.System_String));
Binder\RefSafetyAnalysis.cs (4)
704if (arg is BoundConversion { ConversionKind: ConversionKind.InterpolatedStringHandler, Operand: BoundInterpolatedString or BoundBinaryOperator } conversion) 988Debug.Assert(conversion.Kind == ConversionKind.Deconstruction); 1097case ConversionKind.Identity: 1098case ConversionKind.ImplicitTupleLiteral:
Binder\Semantics\Conversions\Conversion.cs (146)
21private readonly ConversionKind _kind; 135ConversionKind.CollectionExpression, 140ConversionKind kind, 150? ConversionKind.NoConversion 151: isImplicit ? ConversionKind.ImplicitUserDefined : ConversionKind.ExplicitUserDefined; 163internal Conversion(ConversionKind kind, MethodSymbol conversionMethod, bool isExtensionMethod) 173internal Conversion(ConversionKind kind, ImmutableArray<Conversion> nestedConversions) 180internal Conversion(ConversionKind kind, DeconstructMethodInfo deconstructMethodInfo, ImmutableArray<(BoundValuePlaceholder? placeholder, BoundExpression? conversion)> deconstructConversionInfo) 182Debug.Assert(kind == ConversionKind.Deconstruction); 195Debug.Assert(_kind is ConversionKind.MethodGroup or ConversionKind.IntPtr or ConversionKind.ImplicitUserDefined or ConversionKind.ExplicitUserDefined); 215private static void AssertTrivialConversion(ConversionKind kind) 221case ConversionKind.NoConversion: 222case ConversionKind.Identity: 223case ConversionKind.ImplicitConstant: 224case ConversionKind.ImplicitNumeric: 225case ConversionKind.ImplicitReference: 226case ConversionKind.ImplicitEnumeration: 227case ConversionKind.ImplicitThrow: 228case ConversionKind.AnonymousFunction: 229case ConversionKind.Boxing: 230case ConversionKind.NullLiteral: 231case ConversionKind.DefaultLiteral: 232case ConversionKind.ImplicitNullToPointer: 233case ConversionKind.ImplicitPointerToVoid: 234case ConversionKind.ExplicitPointerToPointer: 235case ConversionKind.ExplicitPointerToInteger: 236case ConversionKind.ExplicitIntegerToPointer: 237case ConversionKind.Unboxing: 238case ConversionKind.ExplicitReference: 239case ConversionKind.IntPtr: 240case ConversionKind.ExplicitEnumeration: 241case ConversionKind.ExplicitNumeric: 242case ConversionKind.ImplicitDynamic: 243case ConversionKind.ExplicitDynamic: 244case ConversionKind.InterpolatedString: 245case ConversionKind.InterpolatedStringHandler: 246case ConversionKind.InlineArray: 247case ConversionKind.ImplicitSpan: 248case ConversionKind.ExplicitSpan: 260internal static Conversion GetTrivialConversion(ConversionKind kind) 266internal static Conversion UnsetConversion => new Conversion(ConversionKind.UnsetConversionKind); 267internal static Conversion NoConversion => new Conversion(ConversionKind.NoConversion); 268internal static Conversion Identity => new Conversion(ConversionKind.Identity); 269internal static Conversion ImplicitConstant => new Conversion(ConversionKind.ImplicitConstant); 270internal static Conversion ImplicitNumeric => new Conversion(ConversionKind.ImplicitNumeric); 271internal static Conversion ImplicitReference => new Conversion(ConversionKind.ImplicitReference); 272internal static Conversion ImplicitEnumeration => new Conversion(ConversionKind.ImplicitEnumeration); 273internal static Conversion ImplicitThrow => new Conversion(ConversionKind.ImplicitThrow); 274internal static Conversion ObjectCreation => new Conversion(ConversionKind.ObjectCreation); 275internal static Conversion CollectionExpression => new Conversion(ConversionKind.CollectionExpression); 276internal static Conversion AnonymousFunction => new Conversion(ConversionKind.AnonymousFunction); 277internal static Conversion Boxing => new Conversion(ConversionKind.Boxing); 278internal static Conversion NullLiteral => new Conversion(ConversionKind.NullLiteral); 279internal static Conversion DefaultLiteral => new Conversion(ConversionKind.DefaultLiteral); 280internal static Conversion NullToPointer => new Conversion(ConversionKind.ImplicitNullToPointer); 281internal static Conversion PointerToVoid => new Conversion(ConversionKind.ImplicitPointerToVoid); 282internal static Conversion PointerToPointer => new Conversion(ConversionKind.ExplicitPointerToPointer); 283internal static Conversion PointerToInteger => new Conversion(ConversionKind.ExplicitPointerToInteger); 284internal static Conversion IntegerToPointer => new Conversion(ConversionKind.ExplicitIntegerToPointer); 285internal static Conversion Unboxing => new Conversion(ConversionKind.Unboxing); 286internal static Conversion ExplicitReference => new Conversion(ConversionKind.ExplicitReference); 287internal static Conversion IntPtr => new Conversion(ConversionKind.IntPtr); 288internal static Conversion ExplicitEnumeration => new Conversion(ConversionKind.ExplicitEnumeration); 289internal static Conversion ExplicitNumeric => new Conversion(ConversionKind.ExplicitNumeric); 290internal static Conversion ImplicitDynamic => new Conversion(ConversionKind.ImplicitDynamic); 291internal static Conversion ExplicitDynamic => new Conversion(ConversionKind.ExplicitDynamic); 292internal static Conversion InterpolatedString => new Conversion(ConversionKind.InterpolatedString); 293internal static Conversion InterpolatedStringHandler => new Conversion(ConversionKind.InterpolatedStringHandler); 294internal static Conversion Deconstruction => new Conversion(ConversionKind.Deconstruction); 295internal static Conversion PinnedObjectToPointer => new Conversion(ConversionKind.PinnedObjectToPointer); 296internal static Conversion ImplicitPointer => new Conversion(ConversionKind.ImplicitPointer); 297internal static Conversion FunctionType => new Conversion(ConversionKind.FunctionType); 298internal static Conversion InlineArray => new Conversion(ConversionKind.InlineArray); 299internal static Conversion ImplicitSpan => new Conversion(ConversionKind.ImplicitSpan); 300internal static Conversion ExplicitSpan => new Conversion(ConversionKind.ExplicitSpan); 312internal static readonly Conversion ExplicitNullableWithExplicitEnumerationUnderlying = new Conversion(ConversionKind.ExplicitNullable, ExplicitEnumerationUnderlying); 313internal static readonly Conversion ExplicitNullableWithPointerToIntegerUnderlying = new Conversion(ConversionKind.ExplicitNullable, PointerToIntegerUnderlying); 314internal static readonly Conversion ExplicitNullableWithIdentityUnderlying = new Conversion(ConversionKind.ExplicitNullable, IdentityUnderlying); 315internal static readonly Conversion ExplicitNullableWithImplicitNumericUnderlying = new Conversion(ConversionKind.ExplicitNullable, ImplicitNumericUnderlying); 316internal static readonly Conversion ExplicitNullableWithExplicitNumericUnderlying = new Conversion(ConversionKind.ExplicitNullable, ExplicitNumericUnderlying); 317internal static readonly Conversion ExplicitNullableWithImplicitConstantUnderlying = new Conversion(ConversionKind.ExplicitNullable, ImplicitConstantUnderlying); 319internal static readonly Conversion ImplicitNullableWithExplicitEnumerationUnderlying = new Conversion(ConversionKind.ImplicitNullable, ExplicitEnumerationUnderlying); 320internal static readonly Conversion ImplicitNullableWithPointerToIntegerUnderlying = new Conversion(ConversionKind.ImplicitNullable, PointerToIntegerUnderlying); 321internal static readonly Conversion ImplicitNullableWithIdentityUnderlying = new Conversion(ConversionKind.ImplicitNullable, IdentityUnderlying); 322internal static readonly Conversion ImplicitNullableWithImplicitNumericUnderlying = new Conversion(ConversionKind.ImplicitNullable, ImplicitNumericUnderlying); 323internal static readonly Conversion ImplicitNullableWithExplicitNumericUnderlying = new Conversion(ConversionKind.ImplicitNullable, ExplicitNumericUnderlying); 324internal static readonly Conversion ImplicitNullableWithImplicitConstantUnderlying = new Conversion(ConversionKind.ImplicitNullable, ImplicitConstantUnderlying); 340return new Conversion(ConversionKind.StackAllocToPointerType, ImmutableArray.Create(underlyingConversion)); 345return new Conversion(ConversionKind.StackAllocToSpanType, ImmutableArray.Create(underlyingConversion)); 348internal static Conversion MakeNullableConversion(ConversionKind kind, Conversion nestedConversion) 350Debug.Assert(kind == ConversionKind.ImplicitNullable || kind == ConversionKind.ExplicitNullable); 354ConversionKind.Identity => kind == ConversionKind.ImplicitNullable ? ImplicitNullableWithIdentityUnderlying : ExplicitNullableWithIdentityUnderlying, 355ConversionKind.ImplicitConstant => kind == ConversionKind.ImplicitNullable ? ImplicitNullableWithImplicitConstantUnderlying : ExplicitNullableWithImplicitConstantUnderlying, 356ConversionKind.ImplicitNumeric => kind == ConversionKind.ImplicitNullable ? ImplicitNullableWithImplicitNumericUnderlying : ExplicitNullableWithImplicitNumericUnderlying, 357ConversionKind.ExplicitNumeric => kind == ConversionKind.ImplicitNullable ? ImplicitNullableWithExplicitNumericUnderlying : ExplicitNullableWithExplicitNumericUnderlying, 358ConversionKind.ExplicitEnumeration => kind == ConversionKind.ImplicitNullable ? ImplicitNullableWithExplicitEnumerationUnderlying : ExplicitNullableWithExplicitEnumerationUnderlying, 359ConversionKind.ExplicitPointerToInteger => kind == ConversionKind.ImplicitNullable ? ImplicitNullableWithPointerToIntegerUnderlying : ExplicitNullableWithPointerToIntegerUnderlying, 366return new Conversion(ConversionKind.SwitchExpression, innerConversions); 371return new Conversion(ConversionKind.ConditionalExpression, innerConversions); 374internal ConversionKind Kind 604return Kind != ConversionKind.NoConversion; 647return Kind == ConversionKind.Identity; 658return Kind == ConversionKind.StackAllocToPointerType || Kind == ConversionKind.StackAllocToSpanType; 672return Kind == ConversionKind.ImplicitNumeric || Kind == ConversionKind.ExplicitNumeric; 686return Kind == ConversionKind.ImplicitEnumeration || Kind == ConversionKind.ExplicitEnumeration; 697return Kind == ConversionKind.ImplicitThrow; 708return Kind == ConversionKind.ObjectCreation; 715public bool IsCollectionExpression => Kind == ConversionKind.CollectionExpression; 724return Kind == ConversionKind.SwitchExpression; 735return Kind == ConversionKind.ConditionalExpression; 750return Kind == ConversionKind.InterpolatedString; 761return Kind == ConversionKind.InterpolatedStringHandler; 772return Kind == ConversionKind.InlineArray; 786return Kind == ConversionKind.ImplicitNullable || Kind == ConversionKind.ExplicitNullable; 797return Kind == ConversionKind.ImplicitTupleLiteral || Kind == ConversionKind.ExplicitTupleLiteral; 808return Kind == ConversionKind.ImplicitTuple || Kind == ConversionKind.ExplicitTuple; 822return Kind == ConversionKind.ImplicitReference || Kind == ConversionKind.ExplicitReference; 836return Kind is ConversionKind.ImplicitSpan or ConversionKind.ExplicitSpan; 864return Kind == ConversionKind.Boxing; 878return Kind == ConversionKind.Unboxing; 892return Kind == ConversionKind.NullLiteral; 903return Kind == ConversionKind.DefaultLiteral; 931return Kind == ConversionKind.ImplicitConstant; 945return Kind == ConversionKind.AnonymousFunction; 959return Kind == ConversionKind.MethodGroup; 1005return Kind == ConversionKind.IntPtr; 1061return this.Kind == ConversionKind.NoConversion ? LookupResultKind.Empty : LookupResultKind.Viable;
Binder\Semantics\Conversions\ConversionEasyOut.cs (14)
23const byte IDN = (byte)ConversionKind.Identity; 24const byte IRF = (byte)ConversionKind.ImplicitReference; 25const byte XRF = (byte)ConversionKind.ExplicitReference; 26const byte XNM = (byte)ConversionKind.ExplicitNumeric; 27const byte NOC = (byte)ConversionKind.NoConversion; 28const byte BOX = (byte)ConversionKind.Boxing; 29const byte UNB = (byte)ConversionKind.Unboxing; 30const byte NUM = (byte)ConversionKind.ImplicitNumeric; 31const byte NUL = (byte)ConversionKind.ImplicitNullable; 32const byte XNL = (byte)ConversionKind.ExplicitNullable; 72public static ConversionKind ClassifyConversion(TypeSymbol source, TypeSymbol target) 77return ConversionKind.NoConversion; 82return ConversionKind.NoConversion; 84return (ConversionKind)s_convkind[sourceIndex, targetIndex];
Binder\Semantics\Conversions\ConversionKindExtensions.cs (7)
6using static Microsoft.CodeAnalysis.CSharp.ConversionKind; 12public static bool IsDynamic(this ConversionKind conversionKind) 18public static bool IsImplicitConversion(this ConversionKind conversionKind) 41case ConversionKind.MethodGroup: 42case ConversionKind.FunctionType: 81public static bool IsUserDefinedConversion(this ConversionKind conversionKind) 94public static bool IsPointerConversion(this ConversionKind kind)
Binder\Semantics\Conversions\Conversions.cs (1)
504return new Conversion(ConversionKind.MethodGroup, method, isExtensionMethod: isExtensionMethod);
Binder\Semantics\Conversions\ConversionsBase.cs (76)
490ConversionKind convKind = ConversionEasyOut.ClassifyConversion(source, target); 491if (convKind != ConversionKind.ImplicitNullable && convKind != ConversionKind.ExplicitNullable) 585private static bool IsStandardImplicitConversionFromType(ConversionKind kind) 589case ConversionKind.Identity: 590case ConversionKind.ImplicitNumeric: 591case ConversionKind.ImplicitNullable: 592case ConversionKind.ImplicitReference: 593case ConversionKind.Boxing: 594case ConversionKind.ImplicitConstant: 595case ConversionKind.ImplicitPointer: 596case ConversionKind.ImplicitPointerToVoid: 597case ConversionKind.ImplicitTuple: 598case ConversionKind.ImplicitSpan: 662{ Kind: ConversionKind.CollectionExpression } => true, 663{ Kind: ConversionKind.ImplicitNullable, UnderlyingConversions: [{ Kind: ConversionKind.CollectionExpression }] } => true, 668static bool isStandardImplicitConversionFromExpression(ConversionKind kind) 677case ConversionKind.NullLiteral: 678case ConversionKind.AnonymousFunction: 679case ConversionKind.MethodGroup: 680case ConversionKind.ImplicitEnumeration: 681case ConversionKind.ImplicitDynamic: 682case ConversionKind.ImplicitNullToPointer: 683case ConversionKind.ImplicitTupleLiteral: 684case ConversionKind.StackAllocToPointerType: 685case ConversionKind.StackAllocToSpanType: 686case ConversionKind.InlineArray: 687case ConversionKind.InterpolatedString: 698Debug.Assert(conversion.Kind == ConversionKind.NoConversion || IsStandardImplicitConversionFromType(conversion.Kind)); 890case ConversionKind.Identity: 893case ConversionKind.ImplicitNumeric: 896case ConversionKind.ImplicitReference: 899case ConversionKind.Boxing: 902case ConversionKind.NoConversion: 905case ConversionKind.ImplicitPointerToVoid: 909case ConversionKind.ImplicitTuple: 915case ConversionKind.ImplicitNullable: 923Conversion.MakeNullableConversion(ConversionKind.ExplicitNullable, underlyingConversion) : 928case ConversionKind.ImplicitSpan: 1014case ConversionKind.ImplicitUserDefined: 1015case ConversionKind.ImplicitDynamic: 1016case ConversionKind.ImplicitTuple: 1017case ConversionKind.ImplicitTupleLiteral: 1018case ConversionKind.ImplicitNullable: 1019case ConversionKind.ConditionalExpression: 1020case ConversionKind.ImplicitSpan: 1176return new Conversion(ConversionKind.ImplicitNullable, ImmutableArray.Create(underlyingConversion)); 1312return new Conversion(ConversionKind.ImplicitNullable, ImmutableArray.Create(underlyingTupleConversion)); 1341return new Conversion(ConversionKind.ExplicitNullable, ImmutableArray.Create(underlyingTupleConversion)); 1894ClassifyImplicitConversionFromType(source.Type, destination.Type, ref discardedUseSiteInfo).Kind != ConversionKind.NoConversion; 1958ConversionKind.ImplicitTupleLiteral, 1975ConversionKind.ImplicitTuple, 2005case ConversionKind.Identity: 2006case ConversionKind.Boxing: 2007case ConversionKind.ImplicitReference: 2008case ConversionKind.ImplicitSpan: 2011case ConversionKind.ImplicitTuple: 2012case ConversionKind.ImplicitTupleLiteral: 2025Debug.Assert(conversion.Kind == ConversionKind.NoConversion); 2032private static ConversionKind GetNumericConversion(TypeSymbol source, TypeSymbol destination) 2039return ConversionKind.UnsetConversionKind; 2046return ConversionKind.UnsetConversionKind; 2049var conversionKind = ConversionEasyOut.ClassifyConversion(source, destination); 2050Debug.Assert(conversionKind is ConversionKind.ImplicitNumeric or ConversionKind.ExplicitNumeric); 2056return GetNumericConversion(source, destination) == ConversionKind.ImplicitNumeric; 2063return GetNumericConversion(source, destination) == ConversionKind.ExplicitNumeric; 2273return new Conversion(ConversionKind.ImplicitNullable, ImmutableArray.Create(tupleConversion)); 2293ConversionKind.ImplicitTupleLiteral, 2311ConversionKind.ExplicitTupleLiteral, 2322ConversionKind kind, 2364ConversionKind.ImplicitTuple, 2383ConversionKind.ExplicitTuple, 2400ConversionKind kind, 2470return new Conversion(ConversionKind.ExplicitNullable, ImmutableArray.Create(tupleConversion));
Binder\Semantics\Conversions\UserDefinedImplicitConversions.cs (44)
614private static bool IsEncompassingImplicitConversionKind(ConversionKind kind) 619case ConversionKind.NoConversion: 623case ConversionKind.ImplicitDynamic: 624case ConversionKind.MethodGroup: 625case ConversionKind.AnonymousFunction: 626case ConversionKind.InterpolatedString: 627case ConversionKind.SwitchExpression: 628case ConversionKind.ConditionalExpression: 629case ConversionKind.ImplicitEnumeration: 630case ConversionKind.StackAllocToPointerType: 631case ConversionKind.StackAllocToSpanType: 632case ConversionKind.InterpolatedStringHandler: 635case ConversionKind.ImplicitUserDefined: 636case ConversionKind.ExplicitUserDefined: 637case ConversionKind.FunctionType: 640case ConversionKind.ExplicitNumeric: 641case ConversionKind.ExplicitEnumeration: 642case ConversionKind.ExplicitNullable: 643case ConversionKind.ExplicitReference: 644case ConversionKind.Unboxing: 645case ConversionKind.ExplicitDynamic: 646case ConversionKind.ExplicitPointerToPointer: 647case ConversionKind.ExplicitPointerToInteger: 648case ConversionKind.ExplicitIntegerToPointer: 649case ConversionKind.IntPtr: 650case ConversionKind.ExplicitTupleLiteral: 651case ConversionKind.ExplicitTuple: 652case ConversionKind.ExplicitSpan: 656case ConversionKind.Identity: 657case ConversionKind.ImplicitNumeric: 658case ConversionKind.ImplicitNullable: 659case ConversionKind.ImplicitReference: 660case ConversionKind.Boxing: 661case ConversionKind.ImplicitConstant: 662case ConversionKind.ImplicitPointerToVoid: 665case ConversionKind.NullLiteral: 666case ConversionKind.ImplicitNullToPointer: 669case ConversionKind.ImplicitTupleLiteral: 670case ConversionKind.ImplicitTuple: 671case ConversionKind.ImplicitThrow: 674case ConversionKind.DefaultLiteral: 677case ConversionKind.ImplicitPointer: 679case ConversionKind.InlineArray: 681case ConversionKind.ImplicitSpan:
Binder\Semantics\OverloadResolution\OverloadResolution.cs (20)
2209if (allSame && Conversions.ClassifyImplicitConversionFromType(type1Normalized, type2Normalized, ref useSiteInfo).Kind != ConversionKind.Identity) 2218if (Conversions.ClassifyImplicitConversionFromType(type1Normalized, type2Normalized, ref useSiteInfo).Kind != ConversionKind.Identity) 2331if (Conversions.ClassifyImplicitConversionFromType(type1Normalized, type2Normalized, ref useSiteInfo).Kind != ConversionKind.Identity) 2693return conversionsOpt.Any(static c => c.Kind == ConversionKind.FunctionType); 2903return conv1.Kind == ConversionKind.Identity ? BetterResult.Left : BetterResult.Neither; 2907return conv2.Kind == ConversionKind.Identity ? BetterResult.Right : BetterResult.Neither; 2959case (ConversionKind.InterpolatedStringHandler, ConversionKind.InterpolatedStringHandler): 2961case (ConversionKind.InterpolatedStringHandler, _): 2963case (_, ConversionKind.InterpolatedStringHandler): 2970case (ConversionKind.FunctionType, ConversionKind.FunctionType): 2972case (_, ConversionKind.FunctionType): 2974case (ConversionKind.FunctionType, _): 3006if (conv1.Kind == ConversionKind.CollectionExpression && 3007conv2.Kind == ConversionKind.CollectionExpression) 3014case (ConversionKind.ImplicitSpan, ConversionKind.ImplicitSpan): 3016case (_, ConversionKind.ImplicitSpan): 3018case (ConversionKind.ImplicitSpan, _):
Binder\SwitchBinder.cs (1)
417Debug.Assert(conversion.Kind == ConversionKind.ImplicitUserDefined);
BoundTree\BoundExpression.cs (7)
460public ConversionKind ConversionKind 502case ConversionKind.Identity: 505case ConversionKind.ImplicitNumeric: 506case ConversionKind.ImplicitEnumeration: 508case ConversionKind.ImplicitReference: 509case ConversionKind.Boxing: 513case ConversionKind.ExplicitNumeric:
CodeGen\EmitConversion.cs (31)
44case ConversionKind.MethodGroup: 46case ConversionKind.ImplicitNullToPointer: 95case ConversionKind.Identity: 98case ConversionKind.ImplicitNumeric: 99case ConversionKind.ExplicitNumeric: 102case ConversionKind.ImplicitReference: 103case ConversionKind.Boxing: 109case ConversionKind.ExplicitReference: 110case ConversionKind.Unboxing: 116case ConversionKind.ImplicitEnumeration: 117case ConversionKind.ExplicitEnumeration: 120case ConversionKind.ImplicitUserDefined: 121case ConversionKind.ExplicitUserDefined: 122case ConversionKind.AnonymousFunction: 123case ConversionKind.MethodGroup: 124case ConversionKind.ImplicitTupleLiteral: 125case ConversionKind.ImplicitTuple: 126case ConversionKind.ExplicitTupleLiteral: 127case ConversionKind.ExplicitTuple: 128case ConversionKind.ImplicitDynamic: 129case ConversionKind.ExplicitDynamic: 130case ConversionKind.ImplicitThrow: 133case ConversionKind.ImplicitPointerToVoid: 134case ConversionKind.ExplicitPointerToPointer: 135case ConversionKind.ImplicitPointer: 137case ConversionKind.ExplicitPointerToInteger: 138case ConversionKind.ExplicitIntegerToPointer: 167case ConversionKind.PinnedObjectToPointer: 173case ConversionKind.ImplicitNullToPointer: 175case ConversionKind.ImplicitNullable: 176case ConversionKind.ExplicitNullable:
CodeGen\EmitExpression.cs (13)
1234if (conversion.ConversionKind == ConversionKind.Unboxing) 1273if (receiver.Kind == BoundKind.Conversion && ((BoundConversion)receiver).ConversionKind == ConversionKind.Unboxing) 1540case ConversionKind.Boxing: 1545case ConversionKind.MethodGroup: 1546case ConversionKind.AnonymousFunction: 1549case ConversionKind.ExplicitReference: 1550case ConversionKind.ImplicitReference: 3947var conversionKind = conversion.ConversionKind; 3948Debug.Assert(conversionKind != ConversionKind.NullLiteral && conversionKind != ConversionKind.DefaultLiteral); 3951conversionKind != ConversionKind.MethodGroup && 3952conversionKind != ConversionKind.NullLiteral && 3953conversionKind != ConversionKind.DefaultLiteral)
CodeGen\EmitOperators.cs (1)
375if (comparand is BoundConversion { Type.SpecialType: SpecialType.System_Object, ConversionKind: ConversionKind.Boxing, Operand.Type: TypeParameterSymbol { AllowsRefLikeType: true } } &&
Compilation\CSharpSemanticModel.cs (15)
2112conversion = new Conversion(ConversionKind.AnonymousFunction, lambda.Symbol, false); 2142if (highestBoundExpr is BoundConversion { ConversionKind: ConversionKind.SwitchExpression, Conversion: var convertedSwitchConversion }) 2160if (highestBoundExpr is BoundConversion { ConversionKind: ConversionKind.ConditionalExpression }) 2179if (highestBoundExpr is BoundConversion { ConversionKind: ConversionKind.CollectionExpression or ConversionKind.NoConversion, Conversion: var convertedCollectionConversion }) 2185else if (highestBoundExpr is BoundConversion { ConversionKind: ConversionKind.ImplicitNullable, Conversion.UnderlyingConversions: [{ Kind: ConversionKind.CollectionExpression }] } boundConversion) 2209if (conversion.Kind == ConversionKind.AnonymousFunction) 2233conversion = new Conversion(ConversionKind.MethodGroup, delegateCreation.MethodOpt, delegateCreation.IsExtensionMethod); 2239conversion = new Conversion(ConversionKind.AnonymousFunction, lambda.Symbol, delegateCreation.IsExtensionMethod); 2245conversion = new Conversion(ConversionKind.AnonymousFunction, lambda.Symbol, delegateCreation.IsExtensionMethod); 2253else if (boundExpr is BoundConversion { ConversionKind: ConversionKind.MethodGroup, Conversion: var exprConversion, Type: { TypeKind: TypeKind.FunctionPointer }, SymbolOpt: var symbol }) 3540if ((conversion.ConversionKind == ConversionKind.MethodGroup) && conversion.IsExtensionMethod) 4310if (conversion.ConversionKind == ConversionKind.MethodGroup) 4314else if (conversion.Operand is BoundConversion { ConversionKind: ConversionKind.MethodGroup } nestedMethodGroupConversion)
Compilation\DeconstructionInfo.cs (3)
38return _conversion.Kind == ConversionKind.Deconstruction 51return _conversion.Kind == ConversionKind.Deconstruction 64if (_conversion.Kind != ConversionKind.Deconstruction)
FlowAnalysis\AbstractFlowPass.cs (3)
1742if (node.ConversionKind == ConversionKind.MethodGroup) 2662|| (expr is BoundConversion { ConversionKind: ConversionKind.ExplicitNullable or ConversionKind.ImplicitNullable } conv
FlowAnalysis\DefiniteAssignment.cs (1)
934boundConversion.ConversionKind == ConversionKind.IntPtr)
FlowAnalysis\NullableWalker.cs (87)
2142case ConversionKind.ExplicitNullable: 2161case ConversionKind.ConditionalExpression or ConversionKind.SwitchExpression or ConversionKind.ObjectCreation when 2164case ConversionKind.Identity: 2165case ConversionKind.DefaultLiteral: 2166case ConversionKind.ImplicitReference: 2167case ConversionKind.ImplicitTupleLiteral: 2168case ConversionKind.Boxing: 2597var conversionKind = conversion.Conversion.Kind; 2598return (conversionKind == ConversionKind.DefaultLiteral || conversionKind == ConversionKind.NullLiteral) && 2845Debug.Assert(conversion.Kind is ConversionKind.Identity or ConversionKind.ImplicitReference); 5813case ConversionKind.ImplicitReference: 5814case ConversionKind.ExplicitReference: 7823if (conversion is { IsValid: true, Kind: ConversionKind.ImplicitUserDefined }) 9030Debug.Assert(conversion.Kind == ConversionKind.ImplicitTuple || conversion.Kind == ConversionKind.ExplicitTuple); 9053case ConversionKind.Identity: 9054case ConversionKind.NullLiteral: 9055case ConversionKind.DefaultLiteral: 9056case ConversionKind.ImplicitReference: 9057case ConversionKind.ExplicitReference: 9058case ConversionKind.Boxing: 9059case ConversionKind.Unboxing: 9062case ConversionKind.ImplicitTupleLiteral: 9063case ConversionKind.ExplicitTupleLiteral: 9064case ConversionKind.ImplicitTuple: 9065case ConversionKind.ExplicitTuple: 9079case ConversionKind.ImplicitNullable: 9080case ConversionKind.ExplicitNullable: 9096case ConversionKind.ImplicitUserDefined: 9097case ConversionKind.ExplicitUserDefined: 9307conversion = Conversion.MakeNullableConversion(ConversionKind.ImplicitNullable, Conversion.Identity); 9337case ConversionKind.MethodGroup: 9367case ConversionKind.AnonymousFunction: 9384case ConversionKind.FunctionType: 9388case ConversionKind.InterpolatedString: 9392case ConversionKind.InterpolatedStringHandler: 9397case ConversionKind.ObjectCreation: 9398case ConversionKind.CollectionExpression: 9399case ConversionKind.SwitchExpression: 9400case ConversionKind.ConditionalExpression: 9404case ConversionKind.ExplicitUserDefined: 9405case ConversionKind.ImplicitUserDefined: 9408case ConversionKind.ExplicitDynamic: 9409case ConversionKind.ImplicitDynamic: 9413case ConversionKind.Boxing: 9417case ConversionKind.Unboxing: 9433case ConversionKind.ImplicitThrow: 9437case ConversionKind.NoConversion: 9441case ConversionKind.NullLiteral: 9442case ConversionKind.DefaultLiteral: 9444goto case ConversionKind.Identity; 9446case ConversionKind.Identity: 9468goto case ConversionKind.ImplicitTuple; 9470goto case ConversionKind.ImplicitReference; 9472case ConversionKind.ImplicitReference: 9473case ConversionKind.ExplicitReference: 9484case ConversionKind.ImplicitNullable: 9510case ConversionKind.ExplicitNullable: 9526goto case ConversionKind.ImplicitNullable; 9528case ConversionKind.ImplicitTuple: 9529case ConversionKind.ImplicitTupleLiteral: 9530case ConversionKind.ExplicitTupleLiteral: 9531case ConversionKind.ExplicitTuple: 9537case ConversionKind.ImplicitTuple: 9538case ConversionKind.ExplicitTuple: 9561case ConversionKind.Deconstruction: 9566case ConversionKind.ExplicitEnumeration: 9570case ConversionKind.InlineArray: 9578case ConversionKind.ImplicitSpan: 9579case ConversionKind.ExplicitSpan: 9582var previousKind = conversion.Kind; 9850Debug.Assert(conversion.Kind == ConversionKind.ExplicitUserDefined || conversion.Kind == ConversionKind.ImplicitUserDefined); 10665Debug.Assert(conversion.Kind == ConversionKind.Deconstruction); 10848underlyingConversion.Kind == ConversionKind.ImplicitNullable && 10923case ConversionKind.Identity: 10924case ConversionKind.ImplicitTupleLiteral: 11630(conversion.Kind == ConversionKind.ExplicitReference && resultType.SpecialType == SpecialType.System_String)) 11838if (conversion.Kind == ConversionKind.NoConversion) 12364case ConversionKind.Identity: 12365case ConversionKind.ImplicitReference: 12366case ConversionKind.Boxing: 12367case ConversionKind.ImplicitNullable:
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
396if (node.ConversionKind == ConversionKind.InterpolatedStringHandler)
FlowAnalysis\NullableWalker_Patterns.cs (6)
466case ConversionKind.Identity: 467case ConversionKind.ImplicitReference: 470case ConversionKind.ExplicitNullable when AreNullableAndUnderlyingTypes(inputType, e.Type, out _): 767ConversionKind.Identity => true, 768ConversionKind.ImplicitReference => true, 769ConversionKind.Boxing => true,
Generated\BoundNodes.xml.Generated.cs (3)
2841public BoundIsOperator(SyntaxNode syntax, BoundExpression operand, BoundTypeExpression targetType, ConversionKind conversionKind, TypeSymbol type, bool hasErrors = false) 2857public ConversionKind ConversionKind { get; } 2862public BoundIsOperator Update(BoundExpression operand, BoundTypeExpression targetType, ConversionKind conversionKind, TypeSymbol type)
Lowering\ClosureConversion\ClosureConversion.cs (2)
1397Debug.Assert(conversion.ConversionKind != ConversionKind.MethodGroup); 1398if (conversion.ConversionKind == ConversionKind.AnonymousFunction)
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (13)
538conversion.ConversionKind != ConversionKind.NullLiteral && 621var kind = _bound.Compilation.Conversions.ClassifyConversionFromType(oldType, newType, isChecked: false, ref useSiteInfo).Kind; 627case ConversionKind.Identity: 629case ConversionKind.ExplicitNumeric: 690case ConversionKind.MethodGroup: 695case ConversionKind.ExplicitUserDefined: 696case ConversionKind.ImplicitUserDefined: 697case ConversionKind.IntPtr: 705!TypeSymbol.Equals(strippedOperandType, ((node.ConversionKind == ConversionKind.ExplicitUserDefined) ? conversionInputType : conversionInputType.StrippedType()), TypeCompareKind.ConsiderEverything2); 718case ConversionKind.ImplicitReference: 719case ConversionKind.Identity: 724case ConversionKind.ImplicitNullable: 737case ConversionKind.NullLiteral:
Lowering\DiagnosticsPass_ExpressionTrees.cs (10)
850case ConversionKind.MethodGroup: 855case ConversionKind.AnonymousFunction: 864case ConversionKind.ImplicitDynamic: 865case ConversionKind.ExplicitDynamic: 872case ConversionKind.ExplicitTuple: 873case ConversionKind.ExplicitTupleLiteral: 874case ConversionKind.ImplicitTuple: 875case ConversionKind.ImplicitTupleLiteral: 882case ConversionKind.InlineArray: 889case ConversionKind.InterpolatedStringHandler:
Lowering\DiagnosticsPass_Warnings.cs (8)
435if (conversion.ConversionKind != ConversionKind.ImplicitNumeric && 436conversion.ConversionKind != ConversionKind.ImplicitConstant) 580if (conv.ConversionKind == ConversionKind.ImplicitNullable) 868if (conv.ConversionKind == ConversionKind.ExplicitNullable || conv.ConversionKind == ConversionKind.ImplicitNullable) 894case ConversionKind.Deconstruction: 895case ConversionKind.ImplicitTupleLiteral: 896case ConversionKind.Identity:
Lowering\Extensions.cs (7)
61case ConversionKind.ImplicitNullable: 62case ConversionKind.ExplicitNullable: 66case ConversionKind.ImplicitEnumeration: 108case ConversionKind.NullLiteral: 112case ConversionKind.DefaultLiteral: 115case ConversionKind.ImplicitNullable: 116case ConversionKind.ExplicitNullable:
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (1)
215case ConversionKind.MethodGroup:
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (2)
222if (conversion.Kind == ConversionKind.ExplicitNullable && 489(conv.IsIdentity || conv.Kind == ConversionKind.ImplicitReference || conv.IsBoxing) &&
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (1)
723if (conversion.ConversionKind == ConversionKind.Boxing)
Lowering\LocalRewriter\LocalRewriter_Call.cs (30)
587case ConversionKind.AnonymousFunction: 588case ConversionKind.ImplicitConstant: 589case ConversionKind.MethodGroup: 590case ConversionKind.NullLiteral: 591case ConversionKind.DefaultLiteral: 594case ConversionKind.Boxing: 595case ConversionKind.ImplicitDynamic: 596case ConversionKind.ExplicitDynamic: 597case ConversionKind.ExplicitEnumeration: 598case ConversionKind.ExplicitNullable: 599case ConversionKind.ExplicitNumeric: 600case ConversionKind.ExplicitReference: 601case ConversionKind.Identity: 602case ConversionKind.ImplicitEnumeration: 603case ConversionKind.ImplicitNullable: 604case ConversionKind.ImplicitNumeric: 605case ConversionKind.ImplicitReference: 606case ConversionKind.Unboxing: 607case ConversionKind.ExplicitPointerToInteger: 608case ConversionKind.ExplicitPointerToPointer: 609case ConversionKind.ImplicitPointerToVoid: 610case ConversionKind.ImplicitNullToPointer: 611case ConversionKind.ExplicitIntegerToPointer: 615case ConversionKind.ExplicitUserDefined: 616case ConversionKind.ImplicitUserDefined: 619case ConversionKind.IntPtr: 620case ConversionKind.ImplicitThrow: 831if (argument is BoundConversion { ConversionKind: ConversionKind.InterpolatedStringHandler, Operand: BoundInterpolatedString or BoundBinaryOperator } conversion) 905if (argument is BoundConversion { ConversionKind: ConversionKind.InterpolatedStringHandler, Operand: BoundInterpolatedString or BoundBinaryOperator } conversion) 1406=> expr is BoundConversion conv && conv.ConversionKind == ConversionKind.AnonymousFunction;
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (5)
32Debug.Assert(conversion.Kind == ConversionKind.CollectionExpression); 206if (conversion.Kind is not (ConversionKind.Identity or ConversionKind.ImplicitReference)) 213return conversion.Kind is ConversionKind.Identity or ConversionKind.ImplicitReference;
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (60)
22case ConversionKind.InterpolatedString: 24case ConversionKind.InterpolatedStringHandler: 37case ConversionKind.SwitchExpression: 41case ConversionKind.ConditionalExpression: 45case ConversionKind.ObjectCreation: 61case ConversionKind.ImplicitNullable when node.Conversion.UnderlyingConversions[0].Kind is ConversionKind.CollectionExpression: 65case ConversionKind.CollectionExpression: 72_inExpressionLambda = _inExpressionLambda || (node.ConversionKind == ConversionKind.AnonymousFunction && !wasInExpressionLambda && rewrittenType.IsExpressionTree()); 250return conversion.ConversionKind == ConversionKind.Identity && !conversion.ExplicitCastInCode; 317case ConversionKind.Identity: 350case ConversionKind.ExplicitUserDefined: 351case ConversionKind.ImplicitUserDefined: 359case ConversionKind.IntPtr: 363case ConversionKind.ImplicitNullable: 364case ConversionKind.ExplicitNullable: 373case ConversionKind.Boxing: 397case ConversionKind.NullLiteral: 398case ConversionKind.DefaultLiteral: 406case ConversionKind.ImplicitReference: 407case ConversionKind.ExplicitReference: 415case ConversionKind.ImplicitConstant: 422goto case ConversionKind.ImplicitNumeric; 424case ConversionKind.ImplicitNumeric: 425case ConversionKind.ExplicitNumeric: 438case ConversionKind.ImplicitTupleLiteral: 439case ConversionKind.ExplicitTupleLiteral: 448case ConversionKind.ImplicitThrow: 455case ConversionKind.ImplicitEnumeration: 484goto case ConversionKind.ExplicitEnumeration; 486case ConversionKind.ExplicitEnumeration: 531case ConversionKind.ImplicitDynamic: 532case ConversionKind.ExplicitDynamic: 536return _dynamicFactory.MakeDynamicConversion(rewrittenOperand, explicitCastInCode || conversion.Kind == ConversionKind.ExplicitDynamic, conversion.IsArrayIndex, @checked, rewrittenType).ToExpression(); 538case ConversionKind.ImplicitTuple: 539case ConversionKind.ExplicitTuple: 548case ConversionKind.MethodGroup when oldNodeOpt is { Type: { TypeKind: TypeKind.FunctionPointer } funcPtrType }: 559case ConversionKind.MethodGroup: 592case ConversionKind.InlineArray: 615case ConversionKind.ImplicitSpan: 616case ConversionKind.ExplicitSpan: 647Debug.Assert(conversion.Kind is ConversionKind.ImplicitSpan); 679Debug.Assert(conversion.Kind is ConversionKind.ImplicitSpan); 698Debug.Assert(conversion.Kind is ConversionKind.ImplicitSpan); 1009case BoundConversion { Conversion: { Kind: ConversionKind.ImplicitNullable }, Operand: var convertedArgument } 1014case BoundConversion { Conversion: { Kind: ConversionKind.ImplicitNullable, UnderlyingConversions: var underlying }, Operand: var convertedArgument } conversion 1015when underlying.Length == 1 && underlying[0].Kind == ConversionKind.ImplicitTuple && !convertedArgument.Type!.IsNullableType(): 1133var conversionKind = conversion.Kind.IsImplicitConversion() ? ConversionKind.ImplicitUserDefined : ConversionKind.ExplicitUserDefined; 1739ConversionKind conversionKind = isImplicit ? ConversionKind.ImplicitUserDefined : ConversionKind.ExplicitUserDefined; 1758case ConversionKind.ExplicitUserDefined: 1759case ConversionKind.ImplicitUserDefined: 1790case ConversionKind.IntPtr: 1802case ConversionKind.ImplicitNumeric: 1803case ConversionKind.ExplicitNumeric: 1817case ConversionKind.ImplicitEnumeration: 1818case ConversionKind.ExplicitEnumeration:
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (4)
20Debug.Assert(right.Conversion.Kind == ConversionKind.Deconstruction); 219Debug.Assert(conversion.Kind == ConversionKind.Deconstruction); 307if ((tupleConversion.Conversion.Kind == ConversionKind.ImplicitTupleLiteral || tupleConversion.Conversion.Kind == ConversionKind.Identity)
Lowering\LocalRewriter\LocalRewriter_IsOperator.cs (1)
30ConversionKind conversionKind,
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (4)
92BoundNode.GetConversion(leftConversion, leftPlaceholder) is { Kind: ConversionKind.Identity or ConversionKind.ImplicitReference }) 99if (BoundNode.GetConversion(leftConversion, leftPlaceholder) is { IsIdentity: true } or { Kind: ConversionKind.ExplicitNullable }) 224if (boundConversion.ConversionKind != ConversionKind.Identity)
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (3)
222not (BoundCall or BoundConversion { ConversionKind: ConversionKind.Boxing, Type.SpecialType: SpecialType.System_Object, Operand.Type.SpecialType: SpecialType.System_Char }) 286if (argument is BoundConversion { ConversionKind: ConversionKind.Boxing, Type.SpecialType: SpecialType.System_Object, Operand: { Type.SpecialType: SpecialType.System_Char } operand }) 583if (conv.ConversionKind == ConversionKind.Boxing)
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (2)
18Debug.Assert(conversion.ConversionKind == ConversionKind.InterpolatedString); 240if (arg is BoundConversion { Conversion: { Kind: ConversionKind.InterpolatedStringHandler }, ExplicitCastInCode: false, Operand: var operand })
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (16)
49case BoundConversion { Conversion: { Kind: ConversionKind.Identity }, Operand: var o }: 51case BoundConversion { Conversion: { Kind: ConversionKind.ImplicitTupleLiteral }, Operand: var o }: 89(kind == ConversionKind.ImplicitNullable || kind == ConversionKind.ExplicitNullable) && 103if (expr is BoundConversion { ConversionKind: ConversionKind.ImplicitTuple, Conversion: var conversion } boundConversion) 190case BoundConversion { Conversion: { Kind: ConversionKind.DefaultLiteral } }: // This conversion can be performed lazily, but need not be saved. It is treated as non-side-effecting. 211var conversion = Conversion.MakeNullableConversion(ConversionKind.ImplicitNullable, Conversion.Identity); 224bool conversionMustBePerformedOnOriginalExpression(ConversionKind kind) 230case ConversionKind.AnonymousFunction: // a lambda cannot be saved without a target type 231case ConversionKind.MethodGroup: // similarly for a method group 232case ConversionKind.InterpolatedString: // an interpolated string must be saved in interpolated form 233case ConversionKind.SwitchExpression: // a switch expression must have its arms converted 234case ConversionKind.StackAllocToPointerType: // a stack alloc is not well-defined without an enclosing conversion 235case ConversionKind.ConditionalExpression: // a conditional expression must have its alternatives converted 236case ConversionKind.StackAllocToSpanType: 237case ConversionKind.ObjectCreation:
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (1)
508Debug.Assert(methodArgumentInfo.Arguments.All(arg => arg is not BoundConversion { ConversionKind: ConversionKind.InterpolatedStringHandler }));
Lowering\SpillSequenceSpiller.cs (1)
1176if (node.ConversionKind == ConversionKind.AnonymousFunction && node.Type.IsExpressionTree())
Lowering\SyntheticBoundNodeFactory.cs (4)
571Debug.Assert(conversion.Kind != ConversionKind.NoConversion); 572if (conversion.Kind != ConversionKind.Identity) 1519if (conversion.Kind == ConversionKind.ImplicitReference && arg.IsLiteralNull()) 1525if (conversion.Kind == ConversionKind.ExplicitNullable &&
Operations\CSharpOperationFactory.cs (2)
1021if (boundConversion.ConversionKind == ConversionKind.InterpolatedStringHandler) 1028if (boundConversion.ConversionKind == CSharp.ConversionKind.MethodGroup)
Operations\CSharpOperationFactory_Methods.cs (1)
145if (boundConversion.ConversionKind == ConversionKind.MethodGroup)
Symbols\Source\SourceComplexParameterSymbol.cs (1)
402((BoundConversion)convertedExpression).ConversionKind != ConversionKind.DefaultLiteral)
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (1)
1372return conversions.ClassifyImplicitConversionFromType(sourceType, targetType, ref discardedUseSiteInfo).Kind != ConversionKind.NoConversion;
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (190)
CodeGen\CodeGenAwaitForeachTests.cs (20)
945Assert.Equal(ConversionKind.NoConversion, info.ElementConversion.Kind); 946Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 1669Assert.Equal(ConversionKind.Identity, info.ElementConversion.Kind); 1670Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 3726Assert.Equal(ConversionKind.Identity, info.ElementConversion.Kind); 3727Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 4473Assert.Equal(ConversionKind.ExplicitUserDefined, info.ElementConversion.Kind); 4475Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 4547Assert.Equal(ConversionKind.Identity, info.ElementConversion.Kind); 4548Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 4657Assert.Equal(ConversionKind.Identity, info.ElementConversion.Kind); 4658Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 4756Assert.Equal(ConversionKind.Identity, info.ElementConversion.Kind); 4757Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 5060Assert.Equal(ConversionKind.Identity, info.ElementConversion.Kind); 5061Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 5141Assert.Equal(ConversionKind.Identity, info.ElementConversion.Kind); 5142Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind); 6447Assert.Equal(ConversionKind.Identity, info.ElementConversion.Kind); 6448Assert.Equal(ConversionKind.Identity, info.CurrentConversion.Kind);
CodeGen\CodeGenDeconstructTests.cs (16)
105Assert.Equal(ConversionKind.Identity, model.GetConversion(right).Kind); 271Assert.Equal(ConversionKind.ImplicitNumeric, nested[0].Conversion.Value.Kind); 275Assert.Equal(ConversionKind.Identity, nested[1].Conversion.Value.Kind); 283Assert.Equal(ConversionKind.UnsetConversionKind, defaultInfo.Conversion.Value.Kind); 1121Assert.Equal(ConversionKind.Identity, nested[0].Conversion.Value.Kind); 1125Assert.Equal(ConversionKind.Identity, nested[1].Conversion.Value.Kind); 1131Assert.Equal(ConversionKind.ImplicitTupleLiteral, tupleConversion.Kind); 1132Assert.Equal(ConversionKind.ImplicitNumeric, tupleConversion.UnderlyingConversions[0].Kind); 2301Assert.Equal(ConversionKind.Identity, nested[0].Conversion.Value.Kind); 2314Assert.Equal(ConversionKind.Identity, nested2[0].Conversion.Value.Kind); 2318Assert.Equal(ConversionKind.Identity, nested2[1].Conversion.Value.Kind); 3451Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(literal).Kind); 3487Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(literal).Kind); 3493Assert.Equal(ConversionKind.Identity, model.GetConversion(nestedLiteral).Kind); 4052Assert.Equal(ConversionKind.Identity, nested[0].Conversion.Value.Kind); 4056Assert.Equal(ConversionKind.Identity, nested[1].Conversion.Value.Kind);
CodeGen\CodeGenFunctionPointersTests.cs (1)
10821Assert.Equal(ConversionKind.AnonymousFunction, conversion.Kind);
CodeGen\CodeGenTupleEqualityTests.cs (24)
383Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(tupleY).Kind); 719Assert.Equal(ConversionKind.ImplicitTuple, model.GetConversion(t).Kind); 803Assert.Equal(ConversionKind.ImplicitReference, model.GetConversion(tuple1Null).Kind); 816Assert.Equal(ConversionKind.ImplicitReference, model.GetConversion(tuple2Null).Kind); 863Assert.Equal(ConversionKind.ImplicitTuple, model.GetConversion(t1).Kind); 872Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(tuple).Kind); 880Assert.Equal(ConversionKind.ImplicitNumeric, model.GetConversion(two).Kind); 911Assert.Equal(ConversionKind.ImplicitTuple, model.GetConversion(t1).Kind); 920Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(tuple).Kind); 928Assert.Equal(ConversionKind.ImplicitConstant, model.GetConversion(two).Kind); 960Assert.Equal(ConversionKind.ImplicitTuple, model.GetConversion(t1).Kind); 976Assert.Equal(ConversionKind.ImplicitTuple, model.GetConversion(t2).Kind); 1014Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(lastTuple).Kind); 1021Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(nullNull).Kind); 1028Assert.Equal(ConversionKind.ImplicitReference, model.GetConversion(lastNull).Kind); 1512Assert.Equal(ConversionKind.Identity, model.GetConversion(t).Kind); 1523Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(nestedTuple).Kind); 1534Assert.Equal(ConversionKind.ImplicitReference, model.GetConversion(nestedNull).Kind); 5166Assert.Equal(ConversionKind.ImplicitTuple, model.GetConversion(leftCast).Kind); 5174Assert.Equal(ConversionKind.ExplicitTupleLiteral, model.GetConversion(leftTuple).Kind); 5182Assert.Equal(ConversionKind.ImplicitReference, model.GetConversion(leftNull).Kind); 5190Assert.Equal(ConversionKind.Identity, model.GetConversion(leftNestedTuple).Kind); 5197Assert.Equal(ConversionKind.ImplicitTuple, model.GetConversion(rightCast).Kind); 5204Assert.Equal(ConversionKind.ExplicitTupleLiteral, model.GetConversion(rightTuple).Kind);
CodeGen\CodeGenTupleTest.cs (129)
7501Assert.Equal(ConversionKind.Identity, castConversion.Kind); 7505Assert.Equal(ConversionKind.ExplicitNullable, tupleConversion.Kind); 7507Assert.Equal(ConversionKind.ExplicitTupleLiteral, tupleConversion.UnderlyingConversions[0].Kind); 7534Assert.Equal(ConversionKind.ImplicitNullable, tupleConversion.Kind); 7536Assert.Equal(ConversionKind.ImplicitTupleLiteral, tupleConversion.UnderlyingConversions[0].Kind); 7576Assert.Equal(ConversionKind.ImplicitUserDefined, conversion1.Kind); 7585Assert.Equal(ConversionKind.ImplicitTupleLiteral, conversion2.Kind); 7594Assert.Equal(ConversionKind.ImplicitTupleLiteral, conversion3.Kind); 7642Assert.Equal(ConversionKind.Identity, conversion.Kind); 8297Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node).Kind); 8336Assert.Equal(ConversionKind.ExplicitNullable, model.GetConversion(node).Kind); 8343Assert.Equal(ConversionKind.ImplicitConstant, model.GetConversion(element).Kind); 8348Assert.Equal(ConversionKind.Identity, model.GetConversion(element).Kind); 8384Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node).Kind); 8412Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node).Kind); 8441Assert.Equal(ConversionKind.ExplicitTupleLiteral, model.GetConversion(node).Kind); 8448Assert.Equal(ConversionKind.ImplicitConstant, model.GetConversion(element).Kind); 8453Assert.Equal(ConversionKind.Identity, model.GetConversion(element).Kind); 8459Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node.Parent).Kind); 8489Assert.Equal(ConversionKind.ImplicitTuple, model.GetConversion(node).Kind); 8523Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node).Kind); 8556Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node).Kind); 8585Assert.Equal(ConversionKind.ExplicitNullable, model.GetConversion(node).Kind); 8592Assert.Equal(ConversionKind.Identity, model.GetConversion(element).Kind); 8597Assert.Equal(ConversionKind.Identity, model.GetConversion(element).Kind); 8638Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(node.Parent).Kind); 8725Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(node).Kind); 8763Assert.Equal(ConversionKind.ExplicitTupleLiteral, model.GetConversion(node).Kind); 8770Assert.Equal(ConversionKind.ImplicitConstant, model.GetConversion(element).Kind); 8775Assert.Equal(ConversionKind.Identity, model.GetConversion(element).Kind); 8810Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(node).Kind); 8848Assert.Equal(ConversionKind.ExplicitTupleLiteral, model.GetConversion(node).Kind); 8899Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(node).Kind); 8946Assert.Equal(ConversionKind.ExplicitTupleLiteral, model.GetConversion(node).Kind); 8953Assert.Equal(ConversionKind.ImplicitConstant, model.GetConversion(element).Kind); 8958Assert.Equal(ConversionKind.ExplicitUserDefined, model.GetConversion(element).Kind); 9020Assert.Equal(ConversionKind.ImplicitUserDefined, model.GetConversion(node).Kind); 9149Assert.Equal(ConversionKind.ImplicitUserDefined, model.GetConversion(node).Kind); 9230Assert.Equal(ConversionKind.ImplicitUserDefined, model.GetConversion(node).Kind); 9313Assert.Equal(ConversionKind.ImplicitUserDefined, model.GetConversion(node).Kind); 16546Assert.Equal(ConversionKind.Identity, model.GetConversion(node).Kind); 17245Assert.Equal(ConversionKind.AnonymousFunction, model.GetConversion(n5).Kind); 17278Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(n1).Kind); 17285Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(n2).Kind); 17292Assert.Equal(ConversionKind.ImplicitConstant, model.GetConversion(n3).Kind); 17306Assert.Equal(ConversionKind.AnonymousFunction, model.GetConversion(n5).Kind); 17337Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(n1).Kind); 17344Assert.Equal(ConversionKind.ImplicitTupleLiteral, model.GetConversion(n2).Kind); 18850Assert.Equal(ConversionKind.Identity, comp.ClassifyConversion(int_string1, int_string1).Kind); 18851Assert.Equal(ConversionKind.Identity, comp.ClassifyConversion(int_string1, int_string2).Kind); 18852Assert.Equal(ConversionKind.Identity, comp.ClassifyConversion(int_string1, int_stringNamed).Kind); 18868Assert.Equal(ConversionKind.Identity, comp.ClassifyConversion(int_string1, int_string1).Kind); 18869Assert.Equal(ConversionKind.Identity, comp.ClassifyConversion(int_string1, int_string2).Kind); 18870Assert.Equal(ConversionKind.Identity, comp.ClassifyConversion(int_string1, int_stringNamed).Kind); 18871Assert.Equal(ConversionKind.Identity, comp.ClassifyConversion(int_string2, int_string1).Kind); 18872Assert.Equal(ConversionKind.Identity, comp.ClassifyConversion(int_stringNamed, int_string1).Kind); 18890Assert.Equal(ConversionKind.NoConversion, comp.ClassifyConversion(int_int, int_int_int).Kind); 18891Assert.Equal(ConversionKind.NoConversion, comp.ClassifyConversion(int_int, string_string).Kind); 18892Assert.Equal(ConversionKind.NoConversion, comp.ClassifyConversion(int_int1, string_string).Kind); 18893Assert.Equal(ConversionKind.NoConversion, comp.ClassifyConversion(int_int1, int_int_int).Kind); 18894Assert.Equal(ConversionKind.NoConversion, comp.ClassifyConversion(string_string, int_int1).Kind); 18895Assert.Equal(ConversionKind.NoConversion, comp.ClassifyConversion(int_int_int, int_int1).Kind); 18911Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string, int_object).Kind); 18912Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string).Kind); 18931Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_object2).Kind); 18932Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_object1).Kind); 18933Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_object2).Kind); 18935Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object2, int_string1).Kind); 18936Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object1, int_string2).Kind); 18937Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object2, int_string2).Kind); 18956Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_string2).Kind); 18957Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_string1).Kind); 18958Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_object).Kind); 18959Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_object).Kind); 18961Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string1).Kind); 18962Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string2).Kind); 18981Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_string2).Kind); 18982Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_string1).Kind); 18983Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_object).Kind); 18984Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_object).Kind); 18986Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string1).Kind); 18987Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string2).Kind); 19007Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_string2).Kind); 19008Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_string1).Kind); 19009Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_object).Kind); 19010Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_object).Kind); 19012Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string1).Kind); 19013Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string2).Kind); 19034Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_string2).Kind); 19035Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_string1).Kind); 19036Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string1, int_object).Kind); 19037Assert.Equal(ConversionKind.ImplicitTuple, comp.ClassifyConversion(int_string2, int_object).Kind); 19039Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string1).Kind); 19040Assert.Equal(ConversionKind.ExplicitTuple, comp.ClassifyConversion(int_object, int_string2).Kind); 19073Assert.Equal(ConversionKind.Identity, model.ClassifyConversion(expr1, int_string1).Kind); 19074Assert.Equal(ConversionKind.Identity, model.ClassifyConversion(expr1, int_string1, isExplicitInSource: true).Kind); 19075Assert.Equal(ConversionKind.ImplicitTuple, model.ClassifyConversion(expr1, int_object).Kind); 19076Assert.Equal(ConversionKind.ExplicitTuple, model.ClassifyConversion(expr1, int_object, isExplicitInSource: true).Kind); 19078Assert.Equal(ConversionKind.NoConversion, model.ClassifyConversion(expr1, int_object_object).Kind); 19079Assert.Equal(ConversionKind.NoConversion, model.ClassifyConversion(expr1, int_object_object, isExplicitInSource: true).Kind); 19112Assert.Equal(ConversionKind.ExplicitTuple, model.ClassifyConversion(expr1, int_string1).Kind); 19113Assert.Equal(ConversionKind.Identity, model.ClassifyConversion(expr1, int_object).Kind); 19114Assert.Equal(ConversionKind.ExplicitTuple, model.ClassifyConversion(expr1, int_string1, isExplicitInSource: true).Kind); 19115Assert.Equal(ConversionKind.Identity, model.ClassifyConversion(expr1, int_object, isExplicitInSource: true).Kind); 19117Assert.Equal(ConversionKind.NoConversion, model.ClassifyConversion(expr1, int_object_object).Kind); 19118Assert.Equal(ConversionKind.NoConversion, model.ClassifyConversion(expr1, int_object_object, isExplicitInSource: true).Kind); 19151Assert.Equal(ConversionKind.Identity, model.ClassifyConversion(expr1, int_string1).Kind); 19152Assert.Equal(ConversionKind.Identity, model.ClassifyConversion(expr1, int_string1, isExplicitInSource: true).Kind); 19153Assert.Equal(ConversionKind.ImplicitTuple, model.ClassifyConversion(expr1, int_object).Kind); 19154Assert.Equal(ConversionKind.ExplicitTuple, model.ClassifyConversion(expr1, int_object, isExplicitInSource: true).Kind); 19156Assert.Equal(ConversionKind.NoConversion, model.ClassifyConversion(expr1, int_object_object).Kind); 19157Assert.Equal(ConversionKind.NoConversion, model.ClassifyConversion(expr1, int_object_object, isExplicitInSource: true).Kind); 19190Assert.Equal(ConversionKind.ExplicitTuple, model.ClassifyConversion(expr1, int_string1).Kind); 19191Assert.Equal(ConversionKind.Identity, model.ClassifyConversion(expr1, int_object).Kind); 19192Assert.Equal(ConversionKind.ExplicitTuple, model.ClassifyConversion(expr1, int_string1, isExplicitInSource: true).Kind); 19193Assert.Equal(ConversionKind.Identity, model.ClassifyConversion(expr1, int_object, isExplicitInSource: true).Kind); 19195Assert.Equal(ConversionKind.NoConversion, model.ClassifyConversion(expr1, int_object_object).Kind); 19196Assert.Equal(ConversionKind.NoConversion, model.ClassifyConversion(expr1, int_object_object, isExplicitInSource: true).Kind); 25706Assert.Equal(ConversionKind.ExplicitTupleLiteral, model.GetConversion(tuple).Kind); 25711Assert.Equal(ConversionKind.ExplicitNullable, model.GetConversion(first).Kind); 25716Assert.Equal(ConversionKind.ImplicitReference, model.GetConversion(second).Kind); 25777Assert.Equal(ConversionKind.ExplicitNullable, model.GetConversion(tuple).Kind); 25782Assert.Equal(ConversionKind.ExplicitNullable, model.GetConversion(first).Kind); 25787Assert.Equal(ConversionKind.ImplicitReference, model.GetConversion(second).Kind); 25842Assert.Equal(ConversionKind.NoConversion, model.GetConversion(tuple).Kind); 25847Assert.Equal(ConversionKind.Identity, model.GetConversion(first).Kind); 25852Assert.Equal(ConversionKind.Identity, model.GetConversion(second).Kind); 25884Assert.Equal(ConversionKind.Identity, model.GetConversion(tuple).Kind); 25914Assert.Equal(ConversionKind.NoConversion, model.GetConversion(tuple).Kind);
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (49)
Emit\NumericIntPtrTests.cs (49)
32internal static readonly ConversionKind[] Identity = new[] { ConversionKind.Identity }; 33internal static readonly ConversionKind[] NoConversion = new[] { ConversionKind.NoConversion }; 34internal static readonly ConversionKind[] Boxing = new[] { ConversionKind.Boxing }; 35internal static readonly ConversionKind[] Unboxing = new[] { ConversionKind.Unboxing }; 36internal static readonly ConversionKind[] IntPtrConversion = new[] { ConversionKind.IntPtr }; 37internal static readonly ConversionKind[] ImplicitNumeric = new[] { ConversionKind.ImplicitNumeric }; 38internal static readonly ConversionKind[] ExplicitIntegerToPointer = new[] { ConversionKind.ExplicitIntegerToPointer }; 39internal static readonly ConversionKind[] ExplicitPointerToInteger = new[] { ConversionKind.ExplicitPointerToInteger }; 40internal static readonly ConversionKind[] ExplicitEnumeration = new[] { ConversionKind.ExplicitEnumeration }; 41internal static readonly ConversionKind[] ExplicitNumeric = new[] { ConversionKind.ExplicitNumeric }; 42internal static readonly ConversionKind[] ExplicitUserDefined = new[] { ConversionKind.ExplicitUserDefined }; 44internal static readonly ConversionKind[] ImplicitNullableNumeric = new[] { ConversionKind.ImplicitNullable, ConversionKind.ImplicitNumeric }; 45internal static readonly ConversionKind[] ImplicitNullableIdentity = new[] { ConversionKind.ImplicitNullable, ConversionKind.Identity }; 47internal static readonly ConversionKind[] ExplicitNullableEnumeration = new[] { ConversionKind.ExplicitNullable, ConversionKind.ExplicitEnumeration }; 48internal static readonly ConversionKind[] ExplicitNullableImplicitNumeric = new[] { ConversionKind.ExplicitNullable, ConversionKind.ImplicitNumeric }; 49internal static readonly ConversionKind[] ExplicitNullableNumeric = new[] { ConversionKind.ExplicitNullable, ConversionKind.ExplicitNumeric }; 50internal static readonly ConversionKind[] ExplicitNullablePointerToInteger = new[] { ConversionKind.ExplicitNullable, ConversionKind.ExplicitPointerToInteger }; 51internal static readonly ConversionKind[] ExplicitNullableIdentity = new[] { ConversionKind.ExplicitNullable, ConversionKind.Identity }; 59internal static bool IsNoConversion(ConversionKind[] conversionKinds) 61return conversionKinds is [ConversionKind.NoConversion]; 64internal static void AssertMatches(ConversionKind[] expected, Conversion conversion) 66IEnumerable<ConversionKind> actualConversionKinds = new[] { conversion.Kind }; 3535void conversions(string sourceType, string destType, ConversionKind[] expectedConversions, string expectedImplicitIL, string expectedExplicitIL, string expectedCheckedIL = null) 5983ConversionKind[] expectedConversions,
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (89)
FirstClassSpanTests.cs (3)
2832Assert.Equal(ConversionKind.ImplicitSpan, argConv.Kind); 2866Assert.Equal(ConversionKind.ExplicitSpan, conv.Kind); 2882Assert.Equal(ConversionKind.ExplicitSpan, conv.Kind);
Semantics\CollectionExpressionTests.cs (23)
203VerifyTypes(model, collections[0], expectedType: null, expectedConvertedType: "System.Object", ConversionKind.NoConversion); 204VerifyTypes(model, collections[1], expectedType: null, expectedConvertedType: "dynamic", ConversionKind.NoConversion); 205VerifyTypes(model, collections[2], expectedType: null, expectedConvertedType: null, ConversionKind.Identity); 238VerifyTypes(model, collections[0], expectedType: null, expectedConvertedType: "System.Object", ConversionKind.NoConversion); 239VerifyTypes(model, collections[1], expectedType: null, expectedConvertedType: "dynamic", ConversionKind.NoConversion); 240VerifyTypes(model, collections[2], expectedType: null, expectedConvertedType: null, ConversionKind.Identity); 15095VerifyTypes(model, collections[0], expectedType: null, expectedConvertedType: "System.Int32[]", ConversionKind.CollectionExpression); 15096VerifyTypes(model, collections[1], expectedType: null, expectedConvertedType: "System.Collections.Generic.List<System.Object>", ConversionKind.CollectionExpression); 15097VerifyTypes(model, collections[2], expectedType: null, expectedConvertedType: "System.Span<System.Int32>", ConversionKind.CollectionExpression); 15098VerifyTypes(model, collections[3], expectedType: null, expectedConvertedType: "System.ReadOnlySpan<System.Object>", ConversionKind.CollectionExpression); 15099VerifyTypes(model, collections[4], expectedType: null, expectedConvertedType: "S1", ConversionKind.CollectionExpression); 15100VerifyTypes(model, collections[5], expectedType: null, expectedConvertedType: "S2", ConversionKind.NoConversion); 15101VerifyTypes(model, collections[6], expectedType: null, expectedConvertedType: null, ConversionKind.Identity); 15102VerifyTypes(model, collections[7], expectedType: null, expectedConvertedType: null, ConversionKind.Identity); 15103VerifyTypes(model, collections[8], expectedType: null, expectedConvertedType: null, ConversionKind.Identity); 15104VerifyTypes(model, collections[9], expectedType: null, expectedConvertedType: null, ConversionKind.Identity); 15105VerifyTypes(model, collections[10], expectedType: null, expectedConvertedType: null, ConversionKind.Identity); 15106VerifyTypes(model, collections[11], expectedType: null, expectedConvertedType: null, ConversionKind.Identity); 15109private static void VerifyTypes(SemanticModel model, ExpressionSyntax expr, string expectedType, string expectedConvertedType, ConversionKind expectedConversionKind) 26757var expectedConversion = new Conversion(ConversionKind.CollectionExpression, nestedConversions: ImmutableArray.Create(Conversion.Identity, Conversion.Identity)); 26812var expectedConversion = new Conversion(ConversionKind.CollectionExpression, nestedConversions: ImmutableArray.Create(Conversion.Identity, Conversion.Identity)); 27046var expectedConversion = new Conversion(ConversionKind.Boxing, nestedConversions: default); 27069var expectedConversion = new Conversion(ConversionKind.ImplicitReference, nestedConversions: default);
Semantics\ExtensionTests.cs (4)
17999Assert.Equal(ConversionKind.MethodGroup, model.GetConversion(memberAccess).Kind); 18031Assert.Equal(ConversionKind.MethodGroup, model.GetConversion(memberAccess).Kind); 18063Assert.Equal(ConversionKind.MethodGroup, model.GetConversion(memberAccess).Kind); 18111Assert.Equal(ConversionKind.MethodGroup, model.GetConversion(memberAccess).Kind);
Semantics\InlineArrayTests.cs (3)
15221Assert.Equal(ConversionKind.InlineArray, model.GetConversion(f[^2]).Kind); 15228Assert.Equal(ConversionKind.InlineArray, model.GetConversion(f[^1]).Kind); 16508Assert.Equal(ConversionKind.InlineArray, model.GetConversion(m3).Kind);
Semantics\PatternMatchingTests2.cs (56)
2872void checkType(ExpressionSyntax expr, string expectedNaturalType, string expectedConvertedType, ConversionKind expectedConversionKind) 2888checkType(expr, null, "C", ConversionKind.SwitchExpression); 2889checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2890checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2891checkType(expr.Arms[2].Expression, null, "C", ConversionKind.ImplicitThrow); 2894checkType(expr, "?", "?", ConversionKind.Identity); 2895checkType(expr.Arms[0].Expression, "A", "?", ConversionKind.NoConversion); 2896checkType(expr.Arms[1].Expression, "B", "?", ConversionKind.NoConversion); 2897checkType(expr.Arms[2].Expression, null, "?", ConversionKind.ImplicitThrow); 2900checkType(expr, null, "D", ConversionKind.SwitchExpression); 2901checkType(expr.Arms[0].Expression, "A", "D", ConversionKind.ImplicitUserDefined); 2902checkType(expr.Arms[1].Expression, "B", "D", ConversionKind.ImplicitUserDefined); 2903checkType(expr.Arms[2].Expression, null, "D", ConversionKind.ImplicitThrow); 2906checkType(expr, "?", "D", ConversionKind.NoConversion); 2907checkType(expr.Arms[0].Expression, "E", "?", ConversionKind.NoConversion); 2908checkType(expr.Arms[1].Expression, "F", "?", ConversionKind.NoConversion); 2909checkType(expr.Arms[2].Expression, null, "?", ConversionKind.ImplicitThrow); 2913checkType(expr, "C", "C", ConversionKind.Identity); 2914checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2915checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2916checkType(expr.Arms[2].Expression, "C", "C", ConversionKind.Identity); 2917checkType(expr.Arms[3].Expression, null, "C", ConversionKind.ImplicitThrow); 2920checkType(expr, "C", "D", ConversionKind.ImplicitUserDefined); 2921checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2922checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2923checkType(expr.Arms[2].Expression, "C", "C", ConversionKind.Identity); 2924checkType(expr.Arms[3].Expression, null, "C", ConversionKind.ImplicitThrow); 2927checkType(expr, "C", "C", ConversionKind.Identity); 2928checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2929checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2930checkType(expr.Arms[2].Expression, "C", "C", ConversionKind.Identity); 2931checkType(expr.Arms[3].Expression, null, "C", ConversionKind.ImplicitThrow); 2934checkType(expr, "System.Int32", "D", ConversionKind.SwitchExpression); 2935checkType(expr.Arms[0].Expression, "System.Int32", "D", ConversionKind.ImplicitUserDefined); 2936checkType(expr.Arms[1].Expression, "System.Int32", "D", ConversionKind.ImplicitUserDefined); 2937checkType(expr.Arms[2].Expression, null, "D", ConversionKind.ImplicitThrow); 2940checkType(expr, null, null, ConversionKind.Identity); 2941checkType(expr.Arms[0].Expression, "A", "C", ConversionKind.ImplicitReference); 2942checkType(expr.Arms[1].Expression, "B", "C", ConversionKind.ImplicitReference); 2943checkType(expr.Arms[2].Expression, null, "C", ConversionKind.ImplicitThrow); 2944checkType((CastExpressionSyntax)expr.Parent.Parent, "C", "C", ConversionKind.Identity); 2947checkType(expr, null, null, ConversionKind.Identity); 2948checkType(expr.Arms[0].Expression, "A", "D", ConversionKind.ImplicitUserDefined); 2949checkType(expr.Arms[1].Expression, "B", "D", ConversionKind.ImplicitUserDefined); 2950checkType(expr.Arms[2].Expression, null, "D", ConversionKind.ImplicitThrow); 2951checkType((CastExpressionSyntax)expr.Parent.Parent, "D", "D", ConversionKind.Identity); 2954checkType(expr, "?", "?", ConversionKind.Identity); 2955checkType(expr.Arms[0].Expression, "E", "?", ConversionKind.NoConversion); 2956checkType(expr.Arms[1].Expression, "F", "?", ConversionKind.NoConversion); 2957checkType(expr.Arms[2].Expression, null, "?", ConversionKind.ImplicitThrow); 2958checkType((CastExpressionSyntax)expr.Parent.Parent, "D", "D", ConversionKind.Identity); 2961checkType(expr, "System.Int32", "System.Int32", ConversionKind.Identity); 2962checkType(expr.Arms[0].Expression, "System.Int32", "D", ConversionKind.ImplicitUserDefined); 2963checkType(expr.Arms[1].Expression, "System.Int32", "D", ConversionKind.ImplicitUserDefined); 2964checkType(expr.Arms[2].Expression, null, "D", ConversionKind.ImplicitThrow); 2965checkType((CastExpressionSyntax)expr.Parent.Parent, "D", "D", ConversionKind.Identity);
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (2)
IOperation\IOperationTests_ICompoundAssignmentOperation.cs (2)
88var inConversion = new Conversion(ConversionKind.ImplicitUserDefined, inSymbol, false); 89var outConversion = new Conversion(ConversionKind.ImplicitUserDefined, outSymbol, false);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (260)
Semantics\DeconstructionTests.cs (5)
5990Assert.Equal(ConversionKind.Identity, model.GetConversion(mainCall).Kind); 6033Assert.Equal(ConversionKind.Identity, model.GetConversion(mainCall).Kind); 6073Assert.Equal(ConversionKind.Identity, model.GetConversion(mainCall).Kind); 6115Assert.Equal(ConversionKind.Identity, model.GetConversion(two).Kind); 6155Assert.Equal(ConversionKind.Identity, model.GetConversion(mainCall).Kind);
Semantics\DelegateTypeTests.cs (15)
14853verifyConversions(model, expr, comp.GetSpecialType(SpecialType.System_MulticastDelegate).GetPublicSymbol(), ConversionKind.FunctionType, ConversionKind.FunctionType); 14854verifyConversions(model, expr, comp.GetWellKnownType(WellKnownType.System_Linq_Expressions_Expression).GetPublicSymbol(), ConversionKind.FunctionType, ConversionKind.FunctionType); 14855verifyConversions(model, expr, getFunctionType(funcOfT.Construct(comp.GetSpecialType(SpecialType.System_Int32))), ConversionKind.FunctionType, ConversionKind.FunctionType); 14856verifyConversions(model, expr, getFunctionType(funcOfT.Construct(comp.GetSpecialType(SpecialType.System_Object))), ConversionKind.NoConversion, ConversionKind.NoConversion); 14863static void verifyConversions(SemanticModel model, ExpressionSyntax expr, ITypeSymbol destination, ConversionKind expectedImplicitKind, ConversionKind expectedExplicitKind) 15703Assert.Equal(ConversionKind.FunctionType, conversions.ClassifyImplicitConversionFromTypeWhenNeitherOrBothFunctionTypes(functionTypeStringNullable, functionTypeStringNotNullable, ref useSiteInfo).Kind); 15704Assert.Equal(ConversionKind.FunctionType, conversions.ClassifyImplicitConversionFromTypeWhenNeitherOrBothFunctionTypes(functionTypeStringNullable, functionTypeObjectNullable, ref useSiteInfo).Kind); 15705Assert.Equal(ConversionKind.NoConversion, conversions.ClassifyImplicitConversionFromTypeWhenNeitherOrBothFunctionTypes(functionTypeStringNullable, functionTypeNullA, ref useSiteInfo).Kind); 15706Assert.Equal(ConversionKind.NoConversion, conversions.ClassifyImplicitConversionFromTypeWhenNeitherOrBothFunctionTypes(functionTypeNullA, functionTypeStringNullable, ref useSiteInfo).Kind); 15707Assert.Equal(ConversionKind.NoConversion, conversions.ClassifyImplicitConversionFromTypeWhenNeitherOrBothFunctionTypes(functionTypeNullA, functionTypeNullA, ref useSiteInfo).Kind);
Semantics\DynamicTests.cs (2)
73Assert.Equal(ConversionKind.Identity, dynamicToObject.Kind); 74Assert.Equal(ConversionKind.Identity, objectToDynamic.Kind);
Semantics\ExpressionBodiedMemberTests.cs (4)
77Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 228Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 284Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 317Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind);
Semantics\ForEachTests.cs (59)
1215Assert.Equal(ConversionKind.ImplicitReference, GetCollectionConversion(boundNode).Kind); 1216Assert.Equal(ConversionKind.Unboxing, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1218Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1253Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 1254Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1256Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1297Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 1298Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1300Assert.Equal(ConversionKind.ImplicitNumeric, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1341Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 1342Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1344Assert.Equal(ConversionKind.ImplicitNumeric, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1374Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 1375Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1377Assert.Equal(ConversionKind.Unboxing, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1414Assert.Equal(ConversionKind.ImplicitReference, GetCollectionConversion(boundNode).Kind); 1415Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1417Assert.Equal(ConversionKind.ImplicitNumeric, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1456Assert.Equal(ConversionKind.ImplicitReference, GetCollectionConversion(boundNode).Kind); 1457Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1459Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1495Assert.Equal(ConversionKind.ImplicitReference, GetCollectionConversion(boundNode).Kind); 1496Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1498Assert.Equal(ConversionKind.Unboxing, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1528Assert.Equal(ConversionKind.ImplicitReference, GetCollectionConversion(boundNode).Kind); 1529Assert.Equal(ConversionKind.Unboxing, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1531Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1559Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 1560Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1562Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1591Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1615Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1645Assert.Equal(ConversionKind.ImplicitReference, GetCollectionConversion(boundNode).Kind); 1646Assert.Equal(ConversionKind.ExplicitReference, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); //object to C.var 1648Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1676Assert.Equal(ConversionKind.ImplicitDynamic, GetCollectionConversion(boundNode).Kind); 1677Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1679Assert.Equal(ConversionKind.ExplicitDynamic, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1709Assert.Equal(ConversionKind.ImplicitDynamic, GetCollectionConversion(boundNode).Kind); 1710Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1712Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); //NB: differs from explicit case 1750Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 1751Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1753Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1834Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 1835Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1837Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 1881Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 1882Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 1884Assert.Equal(ConversionKind.ImplicitNumeric, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 2148Assert.Equal(ConversionKind.Identity, conv.Kind); 2191Assert.Equal(ConversionKind.ExplicitReference, loopInfo0.CurrentConversion.Kind); 2200Assert.Equal(ConversionKind.Identity, loopInfo1.CurrentConversion.Kind); // Now identity. 3125Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 3126Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 3128Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind); 3243Assert.Equal(ConversionKind.Identity, GetCollectionConversion(boundNode).Kind); 3244Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(info.CurrentConversion, info.CurrentPlaceholder).Kind); 3246Assert.Equal(ConversionKind.Identity, BoundNode.GetConversion(boundNode.ElementConversion, boundNode.ElementPlaceholder).Kind);
Semantics\FunctionPointerTests.cs (42)
214Assert.Equal(ConversionKind.ImplicitPointerToVoid, conversion.Kind); 299Assert.Equal(ConversionKind.ImplicitNullToPointer, conversion.Kind); 356Assert.Equal(ConversionKind.ExplicitPointerToInteger, conversion.Kind); 362Assert.Equal(ConversionKind.ExplicitNullable, conversion.Kind); 364Assert.Equal(ConversionKind.ExplicitPointerToInteger, underlying.Kind); 407Assert.Equal(ConversionKind.IntPtr, conversion.Kind); 411Assert.Equal(ConversionKind.IntPtr, conversion.Kind); 459Assert.Equal(ConversionKind.ExplicitIntegerToPointer, conversion.Kind); 509Assert.Equal(ConversionKind.ExplicitPointerToPointer, conversion.Kind); 606Assert.Equal(ConversionKind.ImplicitUserDefined, conversion.Kind); 845Assert.Equal(ConversionKind.ImplicitPointer, conversion.Kind); 885expectedConversionKind: ConversionKind.ImplicitPointer, expectedImplicit: true, 899private static void VerifyDeclarationConversion(CSharpCompilation comp, SemanticModel model, VariableDeclaratorSyntax decl, ConversionKind expectedConversionKind, bool expectedImplicit, string expectedOriginalType, string expectedConvertedType, string expectedOperationTree) 945expectedConversionKind: ConversionKind.ImplicitPointer, expectedImplicit: true, 982expectedConversionKind: ConversionKind.Identity, expectedImplicit: true, 993expectedConversionKind: ConversionKind.Identity, expectedImplicit: true, 1007expectedConversionKind: ConversionKind.Identity, expectedImplicit: true, 1050expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1063expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1130expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1144expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1158expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1172expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1186expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1200expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1214expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1228expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1275expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1289expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1303expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1370expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1384expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1398expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1412expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1426expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1440expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1454expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1468expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1511expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1525expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1568expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false, 1582expectedConversionKind: ConversionKind.ExplicitPointerToPointer, expectedImplicit: false,
Semantics\ImplicitObjectCreationTests.cs (32)
58assert(0, type: "C", convertedType: "C", symbol: "C..ctor()", ConversionKind.ObjectCreation); 59assert(1, type: "S", convertedType: "S", symbol: "S..ctor()", ConversionKind.ObjectCreation); 60assert(2, type: "S", convertedType: "S?", symbol: "S..ctor()", ConversionKind.ObjectCreation); 62void assert(int index, string type, string convertedType, string symbol, ConversionKind conversionKind) 133assert(0, type: "C", convertedType: "C", symbol: "C..ctor()", ConversionKind.ObjectCreation); 134assert(1, type: "S", convertedType: "S", symbol: "S..ctor()", ConversionKind.ObjectCreation); 135assert(2, type: "S", convertedType: "S?", symbol: "S..ctor()", ConversionKind.ObjectCreation); 137void assert(int index, string type, string convertedType, string symbol, ConversionKind conversionKind) 180assert(0, type: "C", convertedType: "C", symbol: "C..ctor()", ConversionKind.ObjectCreation); 181assert(1, type: "S", convertedType: "S", symbol: "S..ctor()", ConversionKind.ObjectCreation); 182assert(2, type: "S", convertedType: "S?", symbol: "S..ctor()", ConversionKind.ObjectCreation); 184void assert(int index, string type, string convertedType, string symbol, ConversionKind conversionKind) 230assert(0, type: "C", convertedType: "C", symbol: "C..ctor()", constant: null, ConversionKind.ObjectCreation); 231assert(1, type: "S", convertedType: "S", symbol: "S..ctor()", constant: null, ConversionKind.ObjectCreation); 232assert(2, type: "S", convertedType: "S?", symbol: "S..ctor()", constant: null, ConversionKind.ObjectCreation); 233assert(3, type: "System.Int32", convertedType: "System.Int32", symbol: "System.Int32..ctor()", constant: "0", ConversionKind.ObjectCreation); 234assert(4, type: "System.Boolean", convertedType: "System.Boolean?", symbol: "System.Boolean..ctor()", constant: "False", ConversionKind.ObjectCreation); 236void assert(int index, string type, string convertedType, string symbol, string constant, ConversionKind conversionKind) 848Assert.Equal(ConversionKind.ObjectCreation, model.GetConversion(@new).Kind); 889Assert.Equal(ConversionKind.ObjectCreation, model.GetConversion(@new).Kind); 1708assert(1, "N(1)", type: "C", convertedType: "C", symbol: "C C.N(System.Int32 i)", ConversionKind.Identity); 1709assert(3, "N(2)", type: "C", convertedType: "C", symbol: "C C.N(System.Int32 i)", ConversionKind.Identity); 1711void assert(int index, string expression, string type, string convertedType, string symbol, ConversionKind conversionKind) 2127assert(0, type: "?", convertedType: "?", ConversionKind.Identity); 2128assert(1, type: "?", convertedType: "?", ConversionKind.Identity); 2129assert(2, type: "System.IDisposable", convertedType: "System.IDisposable", ConversionKind.NoConversion); 2131void assert(int index, string type, string convertedType, ConversionKind conversionKind) 2924assert(0, type: "System.Index", convertedType: "System.Index", symbol: "System.Index..ctor()", ConversionKind.ObjectCreation); 2925assert(1, type: "System.Index", convertedType: "System.Index", symbol: "System.Index..ctor()", ConversionKind.ObjectCreation); 2926assert(2, type: "System.Index", convertedType: "System.Index", symbol: "System.Index..ctor()", ConversionKind.ObjectCreation); 2927assert(3, type: "System.Index", convertedType: "System.Index", symbol: "System.Index..ctor()", ConversionKind.ObjectCreation); 2929void assert(int index, string type, string convertedType, string symbol, ConversionKind conversionKind)
Semantics\InteractiveSemanticModelTests.cs (4)
161Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 186Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 212Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 240Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind);
Semantics\InterpolationTests.cs (3)
4610Assert.Equal(ConversionKind.InterpolatedStringHandler, semanticInfo.ImplicitConversion.Kind); 4830Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 4837Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind);
Semantics\NativeIntegerTests.cs (47)
25internal static readonly ConversionKind[] Identity = new[] { ConversionKind.Identity }; 26internal static readonly ConversionKind[] NoConversion = new[] { ConversionKind.NoConversion }; 27internal static readonly ConversionKind[] Boxing = new[] { ConversionKind.Boxing }; 28internal static readonly ConversionKind[] Unboxing = new[] { ConversionKind.Unboxing }; 29internal static readonly ConversionKind[] IntPtrConversion = new[] { ConversionKind.IntPtr }; 30internal static readonly ConversionKind[] ImplicitNumeric = new[] { ConversionKind.ImplicitNumeric }; 31internal static readonly ConversionKind[] ExplicitIntegerToPointer = new[] { ConversionKind.ExplicitIntegerToPointer }; 32internal static readonly ConversionKind[] ExplicitPointerToInteger = new[] { ConversionKind.ExplicitPointerToInteger }; 33internal static readonly ConversionKind[] ExplicitEnumeration = new[] { ConversionKind.ExplicitEnumeration }; 34internal static readonly ConversionKind[] ExplicitNumeric = new[] { ConversionKind.ExplicitNumeric }; 36internal static readonly ConversionKind[] ImplicitNullableNumeric = new[] { ConversionKind.ImplicitNullable, ConversionKind.ImplicitNumeric }; 37internal static readonly ConversionKind[] ImplicitNullableIdentity = new[] { ConversionKind.ImplicitNullable, ConversionKind.Identity }; 39internal static readonly ConversionKind[] ExplicitNullableEnumeration = new[] { ConversionKind.ExplicitNullable, ConversionKind.ExplicitEnumeration }; 40internal static readonly ConversionKind[] ExplicitNullableImplicitNumeric = new[] { ConversionKind.ExplicitNullable, ConversionKind.ImplicitNumeric }; 41internal static readonly ConversionKind[] ExplicitNullableNumeric = new[] { ConversionKind.ExplicitNullable, ConversionKind.ExplicitNumeric }; 42internal static readonly ConversionKind[] ExplicitNullablePointerToInteger = new[] { ConversionKind.ExplicitNullable, ConversionKind.ExplicitPointerToInteger }; 43internal static readonly ConversionKind[] ExplicitNullableIdentity = new[] { ConversionKind.ExplicitNullable, ConversionKind.Identity }; 51internal static bool IsNoConversion(ConversionKind[] conversionKinds) 53return conversionKinds is [ConversionKind.NoConversion]; 56internal static void AssertMatches(ConversionKind[] expected, Conversion conversion) 58IEnumerable<ConversionKind> actualConversionKinds = new[] { conversion.Kind }; 7825void conversions(string sourceType, string destType, ConversionKind[] expectedConversions, string expectedImplicitIL, string expectedExplicitIL, string expectedCheckedIL = null) 9469ConversionKind[] expectedConversions,
Semantics\ObjectAndCollectionInitializerTests.cs (3)
3819Assert.Equal(ConversionKind.Identity, conversion.Kind); 3842Assert.Equal(ConversionKind.ImplicitReference, conversion.Kind); 3866Assert.Equal(ConversionKind.Boxing, conversion.Kind);
Semantics\RawInterpolationTests_Handler.cs (3)
2911Assert.Equal(ConversionKind.InterpolatedStringHandler, semanticInfo.ImplicitConversion.Kind); 3131Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 3138Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind);
Semantics\StackAllocInitializerTests.cs (10)
1056Assert.Equal(ConversionKind.ImplicitUserDefined, obj1Value.ImplicitConversion.Kind); 1064Assert.Equal(ConversionKind.Identity, obj2Value.ImplicitConversion.Kind); 1072Assert.Equal(ConversionKind.Identity, obj3Value.ImplicitConversion.Kind); 1080Assert.Equal(ConversionKind.Identity, obj4Value.ImplicitConversion.Kind); 1088Assert.Equal(ConversionKind.NoConversion, obj5Value.ImplicitConversion.Kind); 1159Assert.Equal(ConversionKind.Identity, obj1Value.ImplicitConversion.Kind); 1167Assert.Equal(ConversionKind.Identity, obj2Value.ImplicitConversion.Kind); 1175Assert.Equal(ConversionKind.Identity, obj3Value.ImplicitConversion.Kind); 1183Assert.Equal(ConversionKind.Identity, obj4Value.ImplicitConversion.Kind); 1191Assert.Equal(ConversionKind.NoConversion, obj5Value.ImplicitConversion.Kind);
Semantics\StackAllocSpanExpressionsTests.cs (10)
62Assert.Equal(ConversionKind.ImplicitUserDefined, obj1Value.ImplicitConversion.Kind); 70Assert.Equal(ConversionKind.Identity, obj2Value.ImplicitConversion.Kind); 78Assert.Equal(ConversionKind.Identity, obj3Value.ImplicitConversion.Kind); 86Assert.Equal(ConversionKind.Identity, obj4Value.ImplicitConversion.Kind); 94Assert.Equal(ConversionKind.NoConversion, obj5Value.ImplicitConversion.Kind); 137Assert.Equal(ConversionKind.Identity, obj1Value.ImplicitConversion.Kind); 145Assert.Equal(ConversionKind.Identity, obj2Value.ImplicitConversion.Kind); 153Assert.Equal(ConversionKind.Identity, obj3Value.ImplicitConversion.Kind); 161Assert.Equal(ConversionKind.Identity, obj4Value.ImplicitConversion.Kind); 169Assert.Equal(ConversionKind.NoConversion, obj5Value.ImplicitConversion.Kind);
Semantics\TargetTypedDefaultTests.cs (4)
3588Assert.Equal(ConversionKind.Identity, model.GetConversion(default2).Kind); 3595Assert.Equal(ConversionKind.ImplicitNullable, model.GetConversion(default3).Kind); 3603Assert.Equal(ConversionKind.ImplicitNullable, conversion.Kind); 3604Assert.Equal(ConversionKind.ImplicitNumeric, conversion.UnderlyingConversions.Single().Kind);
Semantics\TopLevelStatementsTests.cs (2)
9710Assert.Equal(ConversionKind.Identity, conversionInTopLevel.Kind); 9715Assert.Equal(ConversionKind.NoConversion, conversionOutsideTopLevel.Kind);
Semantics\UnsafeTests.cs (15)
7866Assert.Equal(ConversionKind.Identity, receiverSummary.ImplicitConversion.Kind); 7875Assert.Equal(ConversionKind.Identity, methodGroupSummary.ImplicitConversion.Kind); 7884Assert.Equal(ConversionKind.Identity, callSummary.ImplicitConversion.Kind); 7933Assert.Equal(ConversionKind.Identity, receiverSummary.ImplicitConversion.Kind); 7940Assert.Equal(ConversionKind.Identity, methodGroupSummary.ImplicitConversion.Kind); 7947Assert.Equal(ConversionKind.Identity, callSummary.ImplicitConversion.Kind); 8177Assert.Equal(ConversionKind.Identity, receiverSummary.ImplicitConversion.Kind); 8189Assert.Equal(ConversionKind.Identity, indexSummary.ImplicitConversion.Kind); 8198Assert.Equal(ConversionKind.Identity, accessSummary.ImplicitConversion.Kind); 8244Assert.Equal(ConversionKind.Identity, receiverSummary.ImplicitConversion.Kind); 8257Assert.Equal(ConversionKind.Identity, accessSummary.ImplicitConversion.Kind); 8302Assert.Equal(ConversionKind.Identity, receiverSummary.ImplicitConversion.Kind); 8315Assert.Equal(ConversionKind.Identity, accessSummary.ImplicitConversion.Kind); 8352Assert.Equal(ConversionKind.ImplicitNullToPointer, conv.Kind); 8395Assert.Equal(ConversionKind.ImplicitPointerToVoid, conv.Kind);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (517)
Compilation\GetSemanticInfoTests.cs (114)
109Assert.Equal(ConversionKind.AnonymousFunction, conv.Kind); 143Assert.Equal(ConversionKind.AnonymousFunction, conv.Kind); 250ConversionTestHelper(model, (v1 as AssignmentExpressionSyntax).Right, ConversionKind.Identity, ConversionKind.Identity); 253ConversionTestHelper(model, (v2 as AssignmentExpressionSyntax).Right, ConversionKind.ImplicitConstant, ConversionKind.ExplicitNumeric); 256ConversionTestHelper(model, v3[0].Initializer.Value, ConversionKind.ImplicitNumeric, ConversionKind.ImplicitNumeric); 259ConversionTestHelper(model, v4[0].Initializer.Value, ConversionKind.ImplicitReference, ConversionKind.NoConversion); 264ConversionTestHelper(model, v61[0].Expression, ConversionKind.ImplicitNumeric, ConversionKind.ImplicitNumeric); 267ConversionTestHelper(model, v7[0].Initializer.Value, ConversionKind.Boxing, ConversionKind.Boxing); 270ConversionTestHelper(model, v8[0].Initializer.Value, ConversionKind.ImplicitEnumeration, ConversionKind.ExplicitEnumeration); 275ConversionTestHelper(model, v9right, ConversionKind.Identity, ConversionKind.Identity); 278private void TestClassifyConversionBuiltInNumeric(string from, string to, ConversionKind ck) 289var isExplicitConversion = ck == ConversionKind.ExplicitNumeric; 314const ConversionKind ID = ConversionKind.Identity; 315const ConversionKind IN = ConversionKind.ImplicitNumeric; 316const ConversionKind XN = ConversionKind.ExplicitNumeric; 319var conversions = new ConversionKind[,] { 381ConversionTestHelper(model, (v1 as CastExpressionSyntax).Expression, comp.GetSpecialType(SpecialType.System_UInt32), ConversionKind.ExplicitNumeric); 384ConversionTestHelper(model, (v2 as AssignmentExpressionSyntax).Right, comp.GetSpecialType(SpecialType.System_Object), ConversionKind.Boxing); 387ConversionTestHelper(model, (v3 as CastExpressionSyntax).Expression, comp.GetSpecialType(SpecialType.System_Int32), ConversionKind.Unboxing); 391ConversionTestHelper(model, (v4 as CastExpressionSyntax).Expression, tsym, ConversionKind.ExplicitReference); 484ConversionTestHelper(model, v1, ConversionKind.ExplicitNumeric, ConversionKind.ExplicitNumeric); 487ConversionTestHelper(model, v2, ConversionKind.Unboxing, ConversionKind.Unboxing); 490ConversionTestHelper(model, v3, ConversionKind.ExplicitReference, ConversionKind.ExplicitReference); 538ConversionTestHelper(model, v1[0].Initializer.Value, ConversionKind.NullLiteral, ConversionKind.NoConversion); 541ConversionTestHelper(model, v2[0].Initializer.Value, ConversionKind.ImplicitNullable, ConversionKind.ExplicitNullable); 545ConversionTestHelper(model, (v3 as AssignmentExpressionSyntax).Right, ConversionKind.ImplicitNullable, ConversionKind.ImplicitNullable); 549ConversionTestHelper(model, v4[0].Initializer.Value, ConversionKind.ImplicitEnumeration, ConversionKind.ExplicitEnumeration); 553ConversionTestHelper(model, v5[0].Initializer.Value, ConversionKind.ImplicitEnumeration, ConversionKind.ExplicitNullable); 655ValidateConversion(Conversion.PointerToVoid, ConversionKind.ImplicitPointerToVoid); 656ValidateConversion(Conversion.NullToPointer, ConversionKind.ImplicitNullToPointer); 657ValidateConversion(Conversion.PointerToPointer, ConversionKind.ExplicitPointerToPointer); 658ValidateConversion(Conversion.IntegerToPointer, ConversionKind.ExplicitIntegerToPointer); 659ValidateConversion(Conversion.PointerToInteger, ConversionKind.ExplicitPointerToInteger); 660ValidateConversion(Conversion.IntPtr, ConversionKind.IntPtr); 664private void ValidateConversion(Conversion conv, ConversionKind kind) 670case ConversionKind.NoConversion: 675case ConversionKind.Identity: 681case ConversionKind.ImplicitNumeric: 687case ConversionKind.ImplicitEnumeration: 693case ConversionKind.ImplicitNullable: 699case ConversionKind.NullLiteral: 705case ConversionKind.ImplicitReference: 711case ConversionKind.Boxing: 717case ConversionKind.ImplicitDynamic: 723case ConversionKind.ExplicitDynamic: 729case ConversionKind.ImplicitConstant: 735case ConversionKind.ImplicitUserDefined: 741case ConversionKind.AnonymousFunction: 747case ConversionKind.MethodGroup: 753case ConversionKind.ExplicitNumeric: 759case ConversionKind.ExplicitEnumeration: 765case ConversionKind.ExplicitNullable: 771case ConversionKind.ExplicitReference: 777case ConversionKind.Unboxing: 783case ConversionKind.ExplicitUserDefined: 789case ConversionKind.ImplicitNullToPointer: 796case ConversionKind.ImplicitPointerToVoid: 803case ConversionKind.ExplicitPointerToPointer: 810case ConversionKind.ExplicitIntegerToPointer: 817case ConversionKind.ExplicitPointerToInteger: 824case ConversionKind.IntPtr: 842private void ConversionTestHelper(SemanticModel semanticModel, ExpressionSyntax expr, ConversionKind ept1, ConversionKind ept2) 856if (ept2 == ConversionKind.NoConversion) 869private void ConversionTestHelper(SemanticModel semanticModel, ExpressionSyntax expr, ITypeSymbol expsym, ConversionKind expkind) 1424Assert.Equal(ConversionKind.Identity, bindInfo.ImplicitConversion.Kind); 1465Assert.Equal(ConversionKind.Identity, bindInfo.ImplicitConversion.Kind); 1499Assert.Equal(ConversionKind.NoConversion, bindInfo.ImplicitConversion.Kind); 2457Assert.Equal(ConversionKind.Identity, conv.Kind); 2486Assert.Equal(ConversionKind.Identity, conv.Kind); 2806Assert.Equal(ConversionKind.Identity, conv.Kind); 3277ThreadStart ts = () => sawWrongConversionKind |= ConversionKind.Identity != model.GetConversion(expr).Kind; 3357Assert.Equal(ConversionKind.Identity, conversion.UserDefinedFromConversion.Kind); 3358Assert.Equal(ConversionKind.Identity, conversion.UserDefinedToConversion.Kind); 3405Assert.Equal(ConversionKind.ImplicitUserDefined, conversion.Kind); 3478Assert.Equal(ConversionKind.ImplicitUserDefined, argConversion.Kind); 3532Assert.Equal(ConversionKind.Identity, argConversion.Kind); 3613Assert.Equal(ConversionKind.Boxing, conv.Kind); 3638Assert.Equal(ConversionKind.Identity, literalConversion.Kind); 3646Assert.Equal(ConversionKind.Boxing, castConversion.Kind); 3671Assert.Equal(ConversionKind.Identity, literalConversion.Kind); 3679Assert.Equal(ConversionKind.Identity, castConversion.Kind); 3681Assert.Equal(ConversionKind.Boxing, model.ClassifyConversion(literal, castTypeInfo.Type).Kind); 3707Assert.Equal(ConversionKind.Identity, literalConversion.Kind); 3715Assert.Equal(ConversionKind.Identity, cast1Conversion.Kind); 3718Assert.Equal(ConversionKind.ImplicitNumeric, model.ClassifyConversion(literal, cast1TypeInfo.Type).Kind); 3727Assert.Equal(ConversionKind.Identity, cast2Conversion.Kind); 3729Assert.Equal(ConversionKind.Boxing, model.ClassifyConversion(cast1, cast2TypeInfo.Type).Kind); 4382Assert.Equal(ConversionKind.Identity, conv.Kind); 5588Assert.Equal(ConversionKind.ImplicitReference, conversion.Kind); 5627Assert.Equal(ConversionKind.AnonymousFunction, conversion.Kind); 5674Assert.Equal(ConversionKind.AnonymousFunction, conversion.Kind); 5735Assert.Equal(ConversionKind.MethodGroup, conversionA.Kind); 5738Assert.Equal(ConversionKind.MethodGroup, conversionB.Kind); 5741Assert.Equal(ConversionKind.NoConversion, conversionC.Kind);
Compilation\SemanticModelAPITests.cs (1)
2282Assert.Equal(ConversionKind.Identity, conv.Kind);
Compilation\SemanticModelGetSemanticInfoTests.cs (344)
49Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 88Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 119Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 153Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 194Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 235Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 273Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 307Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 460Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 500Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 543Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 591Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 639Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 692Assert.Equal(ConversionKind.NoConversion, semanticInfo.ImplicitConversion.Kind); 723Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 759Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 793Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1641Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1685Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1717Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1746Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 1777Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1806Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1836Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1866Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1896Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1925Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1955Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 1985Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 2015Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2047Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2079Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2116Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2149Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2189Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2217Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2261Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2296Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2346Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2392Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2435Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2490Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2542Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2574Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 2610Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2647Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 2688Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2729Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2779Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2825Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2868Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2904Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2944Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 2980Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3014Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3070Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3115Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3155Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3197Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3243Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3282Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3318Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3355Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3392Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3423Assert.Equal(ConversionKind.Boxing, semanticInfo.ImplicitConversion.Kind); 3455Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3490Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3521Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3553Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3587Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3625Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3669Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3703Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3737Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3771Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3801Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3833Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3862Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3897Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 3934Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 3970Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4005Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4036Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4067Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4104Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4133Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4157Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4183Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4211Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4244Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4278Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4316Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4370Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4401Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4441Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4472Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4567Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4605Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4641Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4671Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4709Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4745Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4781Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4812Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 4849Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4876Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4915Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 4962Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5014Assert.Equal(ConversionKind.NoConversion, semanticInfo.ImplicitConversion.Kind); 5065Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5104Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5151Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5197Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5237Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5276Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5318Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5400Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5442Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5478Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5507Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5540Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5572Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5604Assert.Equal(ConversionKind.ImplicitConstant, semanticInfo.ImplicitConversion.Kind); 5654Assert.Equal(ConversionKind.AnonymousFunction, semanticInfo.ImplicitConversion.Kind); 5690Assert.Equal(ConversionKind.NoConversion, semanticInfo.ImplicitConversion.Kind); 5726Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 5759Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5793Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5826Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5860Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5894Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 5929Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 5962Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 5996Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6029Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6057Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 6089Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6115Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6142Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6175Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6327Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6363Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6394Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6433Assert.Equal(ConversionKind.MethodGroup, semanticInfo.ImplicitConversion.Kind); 6467Assert.Equal(ConversionKind.MethodGroup, semanticInfo.ImplicitConversion.Kind); 6490Assert.Equal(ConversionKind.MethodGroup, semanticInfo.ImplicitConversion.Kind); 6517Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6552Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6589Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6639Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6673Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6709Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6734Assert.Equal(ConversionKind.AnonymousFunction, semanticInfo.ImplicitConversion.Kind); 6754Assert.Equal(ConversionKind.AnonymousFunction, semanticInfo.ImplicitConversion.Kind); 6804Assert.Equal(ConversionKind.ImplicitConstant, semanticInfo.ImplicitConversion.Kind); 6839Assert.Equal(ConversionKind.ImplicitConstant, semanticInfo.ImplicitConversion.Kind); 6873Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6918Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 6963Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 7045Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7076Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7104Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7135Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7167Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7199Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7231Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7260Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7286Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7314Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7341Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 7376Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 7397Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7423Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7451Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7480Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 7519Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7550Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7583Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7621Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7658Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7696Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 7725Assert.Equal(ConversionKind.Boxing, semanticInfo.ImplicitConversion.Kind); 7816Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7849Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7881Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7915Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7947Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 7981Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8017Assert.Equal(ConversionKind.MethodGroup, semanticInfo.ImplicitConversion.Kind); 8033Assert.Equal(ConversionKind.MethodGroup, semanticInfo.ImplicitConversion.Kind); 8070Assert.Equal(ConversionKind.MethodGroup, semanticInfo.ImplicitConversion.Kind); 8086Assert.Equal(ConversionKind.NoConversion, semanticInfo.ImplicitConversion.Kind); 8367Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8401Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8512Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8558Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8603Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8642Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8682Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8724Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8766Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 8807Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8849Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8891Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 8931Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9060Assert.Equal(ConversionKind.NoConversion, semanticInfo.ImplicitConversion.Kind); 9121Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9356Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9415Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9454Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9612Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9667Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9718Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9778Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9829Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9884Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9915Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9949Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 9985Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10021Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10057Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10101Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10138Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10175Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10214Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10245Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10280Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10315Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10349Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10383Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10464Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10491Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10520Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10556Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10598Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10635Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10672Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10711Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10754Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10796Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10833Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 10902Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11009Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 11040Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 11073Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 11106Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 11142Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11186Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11220Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11264Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 11301Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 11338Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 11378Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 11425Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11458Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11495Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 11533Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11570Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11605Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11636Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11670Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11708Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11761Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11793Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11829Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11864Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11899Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11935Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 11971Assert.Equal(ConversionKind.NoConversion, semanticInfo.ImplicitConversion.Kind); 12006Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12041Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12077Assert.Equal(ConversionKind.NoConversion, semanticInfo.ImplicitConversion.Kind); 12150Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12184Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 12217Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12254Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 12285Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12320Assert.Equal(ConversionKind.Boxing, semanticInfo.ImplicitConversion.Kind); 12353Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12389Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12424Assert.Equal(ConversionKind.ImplicitReference, semanticInfo.ImplicitConversion.Kind); 12451Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12482Assert.Equal(ConversionKind.NoConversion, semanticInfo.ImplicitConversion.Kind); 12524Assert.Equal(ConversionKind.ImplicitUserDefined, semanticInfo.ImplicitConversion.Kind); 12608Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12642Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12674Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12705Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12737Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12769Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12801Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12844Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12881Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12920Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12956Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 12994Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13035Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13066Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13096Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13127Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13161Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13195Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13226Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13261Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13321Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13380Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13440Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 13501Assert.Equal(ConversionKind.ImplicitNumeric, semanticInfo.ImplicitConversion.Kind); 13559Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13589Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13654Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13683Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13739Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13772Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13803Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13837Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13871Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13910Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13949Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 13976Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14003Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14040Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14079Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14117Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14157Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14199Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14243Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14289Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14335Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14378Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14416Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14505Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14539Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14624Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 14662Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15082Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15111Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15150Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15181Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15212Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15243Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15274Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15336Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 15403Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind);
Compilation\SemanticModelGetSemanticInfoTests_LateBound.cs (17)
142Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 168Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 203Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 381Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 420Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 516Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 553Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 588Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 616Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 653Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 680Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 708Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 743Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 772Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 799Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 827Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind); 858Assert.Equal(ConversionKind.Identity, semanticInfo.ImplicitConversion.Kind);
Symbols\ConversionTests.cs (41)
76const ConversionKind Non = ConversionKind.NoConversion; 77const ConversionKind Idn = ConversionKind.Identity; 78const ConversionKind Inm = ConversionKind.ImplicitNumeric; 79const ConversionKind Inl = ConversionKind.ImplicitNullable; 80const ConversionKind Irf = ConversionKind.ImplicitReference; 81const ConversionKind Box = ConversionKind.Boxing; 82const ConversionKind Xrf = ConversionKind.ExplicitReference; 83const ConversionKind Ubx = ConversionKind.Unboxing; 84const ConversionKind Xnl = ConversionKind.ExplicitNullable; 85const ConversionKind Xnm = ConversionKind.ExplicitNumeric; 87ConversionKind[,] conversions = 182var kind = conversions[i, j]; 320Assert.Equal(ConversionKind.Identity, conv.ClassifyConversionFromType(typeIntArray, typeIntArrayWithCustomModifiers, ref useSiteDiagnostics).Kind); 323Assert.Equal(ConversionKind.Identity, conv.ClassifyConversionFromType(typeIntArrayWithCustomModifiers, typeIntArray, ref useSiteDiagnostics).Kind); 326Assert.Equal(ConversionKind.Identity, conv.ClassifyConversionFromType(typeIntArrayWithCustomModifiers, typeIntArrayWithCustomModifiers, ref useSiteDiagnostics).Kind); 351Assert.Equal(ConversionKind.Identity, tuple.Item2.ClassifyConversion(tuple.Item1, comp.GetSpecialType(SpecialType.System_Boolean)).Kind); 488Assert.Equal(ConversionKind.ExplicitUserDefined, conversion.Kind); // Unexpected: Should be NoConversion or possibly Identity for error case 489Assert.Equal(ConversionKind.MethodGroup, conversion.UserDefinedFromConversion.Kind); 490Assert.Equal(ConversionKind.Identity, conversion.UserDefinedToConversion.Kind); 523Assert.Equal(ConversionKind.ExplicitUserDefined, conversion.Kind); // Unexpected: Should be NoConversion or possibly Identity for error case 524Assert.Equal(ConversionKind.MethodGroup, conversion.UserDefinedFromConversion.Kind); 525Assert.Equal(ConversionKind.Identity, conversion.UserDefinedToConversion.Kind); 559Assert.Equal(ConversionKind.ExplicitUserDefined, conversion.Kind); // Unexpected: Should be NoConversion or possibly Identity for error case 560Assert.Equal(ConversionKind.MethodGroup, conversion.UserDefinedFromConversion.Kind); 561Assert.Equal(ConversionKind.Identity, conversion.UserDefinedToConversion.Kind); 595Assert.Equal(ConversionKind.ExplicitUserDefined, conversion.Kind); // Unexpected: Should be NoConversion or possibly Identity for error case 596Assert.Equal(ConversionKind.MethodGroup, conversion.UserDefinedFromConversion.Kind); 597Assert.Equal(ConversionKind.Identity, conversion.UserDefinedToConversion.Kind); 629Assert.Equal(ConversionKind.Identity, conversion.Kind); 664Assert.Equal(ConversionKind.Identity, conversion.Kind); 689Assert.Equal(ConversionKind.MethodGroup, conversion.Kind);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (4)
FunctionPointerUtilities.cs (4)
185var expectedConversionKind = (expectedType, expectedConvertedType, expectedSymbol) switch 187(null, null, _) => ConversionKind.Identity, 188(_, _, null) => ConversionKind.NoConversion, 189(_, _, _) => ConversionKind.MethodGroup,