Binder\Binder_Symbols.cs (3)
1722internal Symbol GetSpecialTypeMember(SpecialMember member, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
1727internal static Symbol GetSpecialTypeMember(CSharpCompilation compilation, SpecialMember member, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
1735internal static bool TryGetSpecialTypeMember<TSymbol>(CSharpCompilation compilation, SpecialMember specialMember, SyntaxNode syntax, BindingDiagnosticBag diagnostics, out TSymbol symbol, bool isOptional = false)
Binder\ForEachLoopBinder.cs (11)
723MethodSymbol nullableValueGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Nullable_T_get_Value, diagnostics, exprSyntax);
1129getEnumeratorMethod = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerable_T__GetEnumerator, diagnostics, errorLocationSyntax);
1163currentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerator_T__get_Current, diagnostics, errorLocationSyntax);
1175moveNextMethod = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__MoveNext, diagnostics, errorLocationSyntax);
1189builder.GetEnumeratorInfo = GetParameterlessSpecialTypeMemberInfo(SpecialMember.System_Collections_IEnumerable__GetEnumerator, errorLocationSyntax, diagnostics);
1190builder.CurrentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__get_Current, diagnostics, errorLocationSyntax);
1191builder.MoveNextInfo = GetParameterlessSpecialTypeMemberInfo(SpecialMember.System_Collections_IEnumerator__MoveNext, errorLocationSyntax, diagnostics);
1329builder.GetEnumeratorInfo = GetParameterlessSpecialTypeMemberInfo(SpecialMember.System_Collections_IEnumerable__GetEnumerator, syntax, diagnostics);
1330builder.CurrentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__get_Current, diagnostics, syntax);
1331builder.MoveNextInfo = GetParameterlessSpecialTypeMemberInfo(SpecialMember.System_Collections_IEnumerator__MoveNext, syntax, diagnostics);
1947private MethodArgumentInfo GetParameterlessSpecialTypeMemberInfo(SpecialMember member, SyntaxNode syntax, BindingDiagnosticBag diagnostics)
Lowering\LocalRewriter\LocalRewriter.cs (7)
606/// Recommendation: Do not use, use <see cref="TryGetSpecialTypeMethod(SyntaxNode, SpecialMember, out MethodSymbol, bool)"/> instead!
609private MethodSymbol UnsafeGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember)
616/// Recommendation: Do not use, use <see cref="TryGetSpecialTypeMethod(SyntaxNode, SpecialMember, CSharpCompilation, BindingDiagnosticBag, out MethodSymbol, bool)"/> instead!
619private static MethodSymbol UnsafeGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, CSharpCompilation compilation, BindingDiagnosticBag diagnostics)
636private bool TryGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, out MethodSymbol method, bool isOptional = false)
641private static bool TryGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, CSharpCompilation compilation, BindingDiagnosticBag diagnostics, out MethodSymbol method, bool isOptional = false)
662tryGetResult = TryGetSpecialTypeMethod(node.Syntax, SpecialMember.System_Type__GetTypeFromHandle, out getTypeFromHandle);
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (33)
220return RewriteDelegateOperation(syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_Delegate__Combine);
222return RewriteDelegateOperation(syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_Delegate__Remove);
224return RewriteDelegateOperation(syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_Delegate__op_Equality);
226return RewriteDelegateOperation(syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_Delegate__op_Inequality);
269return RewriteStringEquality(oldNode, syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_String__op_Equality);
272return RewriteStringEquality(oldNode, syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_String__op_Inequality);
275return RewriteDelegateOperation(syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_Delegate__Combine);
278return RewriteDelegateOperation(syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_Delegate__Remove);
281return RewriteDelegateOperation(syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_Delegate__op_Equality);
284return RewriteDelegateOperation(syntax, operatorKind, loweredLeft, loweredRight, type, SpecialMember.System_Delegate__op_Inequality);
918UnsafeGetNullableMethod(syntax, expression.Type, SpecialMember.System_Nullable_T_GetValueOrDefault));
950UnsafeGetNullableMethod(syntax, expression.Type, SpecialMember.System_Nullable_T_get_HasValue));
1373UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor),
1669UnsafeGetNullableMethod(syntax, nullableBoolType, SpecialMember.System_Nullable_T__ctor),
1854MethodSymbol getValueOrDefaultX = UnsafeGetNullableMethod(syntax, boundTempX.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
1855MethodSymbol getValueOrDefaultY = UnsafeGetNullableMethod(syntax, boundTempY.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
1912private MethodSymbol UnsafeGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member)
1922internal static MethodSymbol UnsafeGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member, CSharpCompilation compilation, BindingDiagnosticBag diagnostics)
1929private bool TryGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member, out MethodSymbol result, bool isOptional = false)
2013private BoundExpression RewriteStringEquality(BoundBinaryOperator? oldNode, SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundExpression loweredLeft, BoundExpression loweredRight, TypeSymbol type, SpecialMember member)
2026private BoundExpression RewriteDelegateOperation(SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundExpression loweredLeft, BoundExpression loweredRight, TypeSymbol type, SpecialMember member)
2061SpecialMember member;
2065case BinaryOperatorKind.DecimalAddition: member = SpecialMember.System_Decimal__op_Addition; break;
2066case BinaryOperatorKind.DecimalSubtraction: member = SpecialMember.System_Decimal__op_Subtraction; break;
2067case BinaryOperatorKind.DecimalMultiplication: member = SpecialMember.System_Decimal__op_Multiply; break;
2068case BinaryOperatorKind.DecimalDivision: member = SpecialMember.System_Decimal__op_Division; break;
2069case BinaryOperatorKind.DecimalRemainder: member = SpecialMember.System_Decimal__op_Modulus; break;
2070case BinaryOperatorKind.DecimalEqual: member = SpecialMember.System_Decimal__op_Equality; break;
2071case BinaryOperatorKind.DecimalNotEqual: member = SpecialMember.System_Decimal__op_Inequality; break;
2072case BinaryOperatorKind.DecimalLessThan: member = SpecialMember.System_Decimal__op_LessThan; break;
2073case BinaryOperatorKind.DecimalLessThanOrEqual: member = SpecialMember.System_Decimal__op_LessThanOrEqual; break;
2074case BinaryOperatorKind.DecimalGreaterThan: member = SpecialMember.System_Decimal__op_GreaterThan; break;
2075case BinaryOperatorKind.DecimalGreaterThanOrEqual: member = SpecialMember.System_Decimal__op_GreaterThanOrEqual; break;
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (49)
1066MethodSymbol ctor = UnsafeGetNullableMethod(syntax, rewrittenType, SpecialMember.System_Nullable_T__ctor);
1082MethodSymbol get_Value = UnsafeGetNullableMethod(syntax, rewrittenOperandType, SpecialMember.System_Nullable_T_get_Value);
1171if (!TryGetNullableMethod(syntax, boundTemp.Type, SpecialMember.System_Nullable_T_GetValueOrDefault, out getValueOrDefault))
1180UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor),
1264UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor),
1386MethodSymbol ctor = UnsafeGetNullableMethod(call.Syntax, resultType, SpecialMember.System_Nullable_T__ctor);
1437MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, boundTemp.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
1498SpecialMember member = GetIntPtrConversionMethod(source: source, target: rewrittenType);
1537public static SpecialMember GetIntPtrConversionMethod(TypeSymbol source, TypeSymbol target)
1552return SpecialMember.System_IntPtr__op_Explicit_FromPointer;
1563return SpecialMember.System_IntPtr__op_Explicit_FromInt32;
1570return SpecialMember.System_IntPtr__op_Explicit_FromInt64;
1577return SpecialMember.System_UIntPtr__op_Explicit_FromPointer;
1586return SpecialMember.System_UIntPtr__op_Explicit_FromUInt32;
1595return SpecialMember.System_UIntPtr__op_Explicit_FromUInt64;
1602return SpecialMember.System_IntPtr__op_Explicit_ToPointer;
1614return SpecialMember.System_IntPtr__op_Explicit_ToInt32;
1620return SpecialMember.System_IntPtr__op_Explicit_ToInt64;
1627return SpecialMember.System_UIntPtr__op_Explicit_ToPointer;
1639return SpecialMember.System_UIntPtr__op_Explicit_ToUInt32;
1645return SpecialMember.System_UIntPtr__op_Explicit_ToUInt64;
1653private static SpecialMember DecimalConversionMethod(TypeSymbol typeFrom, TypeSymbol typeTo)
1660case SpecialType.System_Char: return SpecialMember.System_Decimal__op_Explicit_ToChar;
1661case SpecialType.System_SByte: return SpecialMember.System_Decimal__op_Explicit_ToSByte;
1662case SpecialType.System_Byte: return SpecialMember.System_Decimal__op_Explicit_ToByte;
1663case SpecialType.System_Int16: return SpecialMember.System_Decimal__op_Explicit_ToInt16;
1664case SpecialType.System_UInt16: return SpecialMember.System_Decimal__op_Explicit_ToUInt16;
1665case SpecialType.System_Int32: return SpecialMember.System_Decimal__op_Explicit_ToInt32;
1666case SpecialType.System_UInt32: return SpecialMember.System_Decimal__op_Explicit_ToUInt32;
1667case SpecialType.System_Int64: return SpecialMember.System_Decimal__op_Explicit_ToInt64;
1668case SpecialType.System_UInt64: return SpecialMember.System_Decimal__op_Explicit_ToUInt64;
1669case SpecialType.System_Single: return SpecialMember.System_Decimal__op_Explicit_ToSingle;
1670case SpecialType.System_Double: return SpecialMember.System_Decimal__op_Explicit_ToDouble;
1680case SpecialType.System_Char: return SpecialMember.System_Decimal__op_Implicit_FromChar;
1681case SpecialType.System_SByte: return SpecialMember.System_Decimal__op_Implicit_FromSByte;
1682case SpecialType.System_Byte: return SpecialMember.System_Decimal__op_Implicit_FromByte;
1683case SpecialType.System_Int16: return SpecialMember.System_Decimal__op_Implicit_FromInt16;
1684case SpecialType.System_UInt16: return SpecialMember.System_Decimal__op_Implicit_FromUInt16;
1685case SpecialType.System_Int32: return SpecialMember.System_Decimal__op_Implicit_FromInt32;
1686case SpecialType.System_UInt32: return SpecialMember.System_Decimal__op_Implicit_FromUInt32;
1687case SpecialType.System_Int64: return SpecialMember.System_Decimal__op_Implicit_FromInt64;
1688case SpecialType.System_UInt64: return SpecialMember.System_Decimal__op_Implicit_FromUInt64;
1689case SpecialType.System_Single: return SpecialMember.System_Decimal__op_Explicit_FromSingle;
1690case SpecialType.System_Double: return SpecialMember.System_Decimal__op_Explicit_FromDouble;
1731SpecialMember member = DecimalConversionMethod(fromType, toType);
1793SpecialMember member = GetIntPtrConversionMethod(fromType, toType);
1807SpecialMember member = DecimalConversionMethod(fromType, toType);
1824SpecialMember member = DecimalConversionMethod(fromType, underlying);
1837SpecialMember member = DecimalConversionMethod(underlying, toType);
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (11)
140TryGetNullableMethod(rewrittenLeft.Syntax, rewrittenLeft.Type, SpecialMember.System_Nullable_T_GetValueOrDefault, out MethodSymbol? getValueOrDefault, isOptional: true))
147TryGetNullableMethod(rewrittenLeft.Syntax, rewrittenLeft.Type, SpecialMember.System_Nullable_T_GetValueOrDefaultDefaultValue, out MethodSymbol? getValueOrDefaultDefaultValue, isOptional: true))
203if ((object)method == (object)_compilation.GetSpecialTypeMember(SpecialMember.System_String__ConcatStringString) ||
204(object)method == (object)_compilation.GetSpecialTypeMember(SpecialMember.System_String__ConcatStringStringString) ||
205(object)method == (object)_compilation.GetSpecialTypeMember(SpecialMember.System_String__ConcatStringStringStringString) ||
206(object)method == (object)_compilation.GetSpecialTypeMember(SpecialMember.System_String__ConcatObject) ||
207(object)method == (object)_compilation.GetSpecialTypeMember(SpecialMember.System_String__ConcatObjectObject) ||
208(object)method == (object)_compilation.GetSpecialTypeMember(SpecialMember.System_String__ConcatObjectObjectObject) ||
209(object)method == (object)_compilation.GetSpecialTypeMember(SpecialMember.System_String__ConcatStringArray) ||
210(object)method == (object)_compilation.GetSpecialTypeMember(SpecialMember.System_String__ConcatObjectArray))
257MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(rewrittenLeft.Syntax, rewrittenLeftType, SpecialMember.System_Nullable_T_GetValueOrDefault);
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (21)
145var concatMember = visitedArguments.Count switch
1472 => SpecialMember.System_String__Concat_2ReadOnlySpans,
1483 => SpecialMember.System_String__Concat_3ReadOnlySpans,
1494 => SpecialMember.System_String__Concat_4ReadOnlySpans,
1742 => SpecialMember.System_String__ConcatStringString,
1753 => SpecialMember.System_String__ConcatStringStringString,
1764 => SpecialMember.System_String__ConcatStringStringStringString,
177>= 5 => SpecialMember.System_String__ConcatStringArray,
376if (IsConcatNonArray(call, ref _concatStringString, SpecialMember.System_String__ConcatStringString, out arguments)
377|| IsConcatNonArray(call, ref _concatStringStringString, SpecialMember.System_String__ConcatStringStringString, out arguments)
378|| IsConcatNonArray(call, ref _concatStringStringStringString, SpecialMember.System_String__ConcatStringStringStringString, out arguments))
383InitializeField(ref _concatStringArray, SpecialMember.System_String__ConcatStringArray);
396InitializeField(ref _objectToString, SpecialMember.System_Object__ToString);
408private readonly void InitializeField(ref MethodSymbol? member, SpecialMember specialMember)
416private readonly bool IsConcatNonArray(BoundCall call, ref MethodSymbol? concatMethod, SpecialMember concatSpecialMember, out ImmutableArray<BoundExpression> arguments)
442if (self.TryGetSpecialTypeMethod(syntax, SpecialMember.System_ReadOnlySpan_T__ctor_Reference, out MethodSymbol? readOnlySpanCtorRefParamGeneric, isOptional: true) &&
455return self.TryGetSpecialTypeMethod(syntax, SpecialMember.System_String__op_Implicit_ToReadOnlySpanOfChar, out stringImplicitConversionToReadOnlySpan, isOptional: true);
556SpecialMember member = (current.OperatorKind == BinaryOperatorKind.StringConcatenation) ?
557SpecialMember.System_String__ConcatStringString :
558SpecialMember.System_String__ConcatObjectObject;
615var objectToStringMethod = UnsafeGetSpecialTypeMethod(syntax, SpecialMember.System_Object__ToString);
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (11)
167method = (MethodSymbol)_compilation.Assembly.GetSpecialTypeMember(SpecialMember.System_Decimal__op_UnaryNegation);
205MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, boundTemp.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
356MethodSymbol ctor = UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor);
818MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T_GetValueOrDefault);
819MethodSymbol ctor = UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor);
902MethodSymbol ctor = UnsafeGetNullableMethod(node.Syntax, binaryOperandType, SpecialMember.System_Nullable_T__ctor);
956SpecialMember member;
959case BinaryOperatorKind.Addition: member = SpecialMember.System_Decimal__op_Increment; break;
960case BinaryOperatorKind.Subtraction: member = SpecialMember.System_Decimal__op_Decrement; break;
984MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, operand.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
985MethodSymbol ctor = UnsafeGetNullableMethod(syntax, operand.Type, SpecialMember.System_Nullable_T__ctor);
Lowering\SyntheticBoundNodeFactory.cs (16)
280(ReferenceEquals(property, Compilation.GetSpecialTypeMember(CodeAnalysis.SpecialMember.System_Array__Length)) ||
281ReferenceEquals(property, Compilation.GetSpecialTypeMember(CodeAnalysis.SpecialMember.System_Array__LongLength)))), "Use BoundArrayLength instead?");
358public Symbol SpecialMember(SpecialMember sm)
365public Symbol? SpecialMember(SpecialMember sm, bool isOptional = false)
399public MethodSymbol SpecialMethod(SpecialMember sm)
406public MethodSymbol? SpecialMethod(SpecialMember sm, bool isOptional)
411public PropertySymbol SpecialProperty(SpecialMember sm)
789return StaticCall(CodeAnalysis.SpecialMember.System_Double__IsNaN, input);
792return StaticCall(CodeAnalysis.SpecialMember.System_Single__IsNaN, input);
830public BoundExpression StaticCall(SpecialMember method, params BoundExpression[] args)
1275getTypeFromHandle = SpecialMethod(CodeAnalysis.SpecialMember.System_Type__GetTypeFromHandle);
1460CodeAnalysis.SpecialMember.System_Reflection_MethodBase__GetMethodFromHandle :
1461CodeAnalysis.SpecialMember.System_Reflection_MethodBase__GetMethodFromHandle2);
1531return this.Call(arg, this.SpecialMethod(CodeAnalysis.SpecialMember.System_Nullable_T_get_Value).AsMember((NamedTypeSymbol)arg.Type));
1553MethodSymbol? arrayEmpty = SpecialMethod(CodeAnalysis.SpecialMember.System_Array__Empty, isOptional: true);
1818LocalRewriter.UnsafeGetNullableMethod(syntax, expression.Type, CodeAnalysis.SpecialMember.System_Nullable_T_get_HasValue, Compilation, Diagnostics));
Symbols\AnonymousTypes\AnonymousTypeManager.SymbolCollection.cs (9)
28ReportErrorOnSpecialMember(System_Object__Equals, SpecialMember.System_Object__Equals, diagnostics, ref hasErrors);
29ReportErrorOnSpecialMember(System_Object__ToString, SpecialMember.System_Object__ToString, diagnostics, ref hasErrors);
30ReportErrorOnSpecialMember(System_Object__GetHashCode, SpecialMember.System_Object__GetHashCode, diagnostics, ref hasErrors);
31ReportErrorOnSpecialMember(System_String__Format_IFormatProvider, SpecialMember.System_String__Format_IFormatProvider, diagnostics, ref hasErrors);
74private static void ReportErrorOnSpecialMember(Symbol symbol, SpecialMember member, BindingDiagnosticBag diagnostics, ref bool hasError)
151get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__Equals) as MethodSymbol; }
156get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__ToString) as MethodSymbol; }
161get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__GetHashCode) as MethodSymbol; }
181get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_String__Format_IFormatProvider) as MethodSymbol; }
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (42)
77private static readonly SpecialMember[] s_requiredSpecialMembers = new[]
79SpecialMember.System_Collections_IEnumerable__GetEnumerator,
80SpecialMember.System_Collections_Generic_IEnumerable_T__GetEnumerator,
81SpecialMember.System_Collections_Generic_ICollection_T__Count,
82SpecialMember.System_Collections_Generic_ICollection_T__IsReadOnly,
83SpecialMember.System_Collections_Generic_ICollection_T__Add,
84SpecialMember.System_Collections_Generic_ICollection_T__Clear,
85SpecialMember.System_Collections_Generic_ICollection_T__Contains,
86SpecialMember.System_Collections_Generic_ICollection_T__CopyTo,
87SpecialMember.System_Collections_Generic_ICollection_T__Remove,
88SpecialMember.System_Collections_Generic_IList_T__get_Item,
89SpecialMember.System_Collections_Generic_IList_T__IndexOf,
90SpecialMember.System_Collections_Generic_IList_T__Insert,
91SpecialMember.System_Collections_Generic_IList_T__RemoveAt,
113private static readonly SpecialMember[] s_readOnlyInterfacesWellKnownMembers = new[]
115SpecialMember.System_Collections_Generic_IReadOnlyCollection_T__Count,
116SpecialMember.System_Collections_Generic_IReadOnlyList_T__get_Item,
172foreach (var member in s_requiredSpecialMembers)
196foreach (var member in s_readOnlyInterfacesWellKnownMembers)
233static DiagnosticInfo? getSpecialTypeMemberDiagnosticInfo(CSharpCompilation compilation, SpecialMember member)
322(MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerable__GetEnumerator),
398((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerable_T__GetEnumerator)!).AsMember(iEnumerableT),
405((PropertySymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IReadOnlyCollection_T__Count)!).AsMember(iReadOnlyCollectionT),
410((PropertySymbol)((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IReadOnlyList_T__get_Item)!).AssociatedSymbol).AsMember(iReadOnlyListT),
416((PropertySymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Count)!).AsMember(iCollectionT),
421((PropertySymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__IsReadOnly)!).AsMember(iCollectionT),
426((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Add)!).AsMember(iCollectionT),
431((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Clear)!).AsMember(iCollectionT),
436((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Contains)!).AsMember(iCollectionT),
441((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__CopyTo)!).AsMember(iCollectionT),
446((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_ICollection_T__Remove)!).AsMember(iCollectionT),
451((PropertySymbol)((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__get_Item)!).AssociatedSymbol).AsMember(iListT),
457((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__IndexOf)!).AsMember(iListT),
462((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__Insert)!).AsMember(iListT),
467((MethodSymbol)compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IList_T__RemoveAt)!).AsMember(iListT),
604var arraySetValueMethod = (MethodSymbol)method.DeclaringCompilation.GetSpecialTypeMember(SpecialMember.System_Array__SetValue)!;
785&& compilation.GetSpecialTypeMember(SpecialMember.System_Array__SetValue) is not null
791&& compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerator_T__Current) is not null
792&& compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__Current) is not null
793&& compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__MoveNext) is not null
794&& compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__Reset) is not null
795&& compilation.GetSpecialTypeMember(SpecialMember.System_IDisposable__Dispose) is not null;