Binder\Binder_Symbols.cs (3)
1734internal Symbol GetSpecialTypeMember(SpecialMember member, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
1739internal static Symbol GetSpecialTypeMember(CSharpCompilation compilation, SpecialMember member, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
1747internal static bool TryGetSpecialTypeMember<TSymbol>(CSharpCompilation compilation, SpecialMember specialMember, SyntaxNode syntax, BindingDiagnosticBag diagnostics, out TSymbol symbol, bool isOptional = false)
Binder\ForEachLoopBinder.cs (11)
726MethodSymbol nullableValueGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Nullable_T_get_Value, diagnostics, exprSyntax);
1118getEnumeratorMethod = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerable_T__GetEnumerator, diagnostics, errorLocationSyntax);
1152currentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerator_T__get_Current, diagnostics, errorLocationSyntax);
1164moveNextMethod = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__MoveNext, diagnostics, errorLocationSyntax);
1178builder.GetEnumeratorInfo = GetParameterlessSpecialTypeMemberInfo(SpecialMember.System_Collections_IEnumerable__GetEnumerator, errorLocationSyntax, diagnostics);
1179builder.CurrentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__get_Current, diagnostics, errorLocationSyntax);
1180builder.MoveNextInfo = GetParameterlessSpecialTypeMemberInfo(SpecialMember.System_Collections_IEnumerator__MoveNext, errorLocationSyntax, diagnostics);
1310builder.GetEnumeratorInfo = GetParameterlessSpecialTypeMemberInfo(SpecialMember.System_Collections_IEnumerable__GetEnumerator, syntax, diagnostics);
1311builder.CurrentPropertyGetter = (MethodSymbol)GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__get_Current, diagnostics, syntax);
1312builder.MoveNextInfo = GetParameterlessSpecialTypeMemberInfo(SpecialMember.System_Collections_IEnumerator__MoveNext, syntax, diagnostics);
1934private MethodArgumentInfo GetParameterlessSpecialTypeMemberInfo(SpecialMember member, SyntaxNode syntax, BindingDiagnosticBag diagnostics)
Lowering\LocalRewriter\LocalRewriter.cs (7)
610/// Recommendation: Do not use, use <see cref="TryGetSpecialTypeMethod(SyntaxNode, SpecialMember, out MethodSymbol, bool)"/> instead!
613private MethodSymbol UnsafeGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember)
620/// Recommendation: Do not use, use <see cref="TryGetSpecialTypeMethod(SyntaxNode, SpecialMember, CSharpCompilation, BindingDiagnosticBag, out MethodSymbol, bool)"/> instead!
623private static MethodSymbol UnsafeGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, CSharpCompilation compilation, BindingDiagnosticBag diagnostics)
640private bool TryGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, out MethodSymbol method, bool isOptional = false)
645private static bool TryGetSpecialTypeMethod(SyntaxNode syntax, SpecialMember specialMember, CSharpCompilation compilation, BindingDiagnosticBag diagnostics, out MethodSymbol method, bool isOptional = false)
666tryGetResult = 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);
919UnsafeGetNullableMethod(syntax, expression.Type, SpecialMember.System_Nullable_T_GetValueOrDefault));
951UnsafeGetNullableMethod(syntax, expression.Type, SpecialMember.System_Nullable_T_get_HasValue));
1374UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor),
1670UnsafeGetNullableMethod(syntax, nullableBoolType, SpecialMember.System_Nullable_T__ctor),
1855MethodSymbol getValueOrDefaultX = UnsafeGetNullableMethod(syntax, boundTempX.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
1856MethodSymbol getValueOrDefaultY = UnsafeGetNullableMethod(syntax, boundTempY.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
1913private MethodSymbol UnsafeGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member)
1923internal static MethodSymbol UnsafeGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member, CSharpCompilation compilation, BindingDiagnosticBag diagnostics)
1930private bool TryGetNullableMethod(SyntaxNode syntax, TypeSymbol nullableType, SpecialMember member, out MethodSymbol result, bool isOptional = false)
2014private BoundExpression RewriteStringEquality(BoundBinaryOperator? oldNode, SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundExpression loweredLeft, BoundExpression loweredRight, TypeSymbol type, SpecialMember member)
2027private BoundExpression RewriteDelegateOperation(SyntaxNode syntax, BinaryOperatorKind operatorKind, BoundExpression loweredLeft, BoundExpression loweredRight, TypeSymbol type, SpecialMember member)
2062SpecialMember member;
2066case BinaryOperatorKind.DecimalAddition: member = SpecialMember.System_Decimal__op_Addition; break;
2067case BinaryOperatorKind.DecimalSubtraction: member = SpecialMember.System_Decimal__op_Subtraction; break;
2068case BinaryOperatorKind.DecimalMultiplication: member = SpecialMember.System_Decimal__op_Multiply; break;
2069case BinaryOperatorKind.DecimalDivision: member = SpecialMember.System_Decimal__op_Division; break;
2070case BinaryOperatorKind.DecimalRemainder: member = SpecialMember.System_Decimal__op_Modulus; break;
2071case BinaryOperatorKind.DecimalEqual: member = SpecialMember.System_Decimal__op_Equality; break;
2072case BinaryOperatorKind.DecimalNotEqual: member = SpecialMember.System_Decimal__op_Inequality; break;
2073case BinaryOperatorKind.DecimalLessThan: member = SpecialMember.System_Decimal__op_LessThan; break;
2074case BinaryOperatorKind.DecimalLessThanOrEqual: member = SpecialMember.System_Decimal__op_LessThanOrEqual; break;
2075case BinaryOperatorKind.DecimalGreaterThan: member = SpecialMember.System_Decimal__op_GreaterThan; break;
2076case BinaryOperatorKind.DecimalGreaterThanOrEqual: member = SpecialMember.System_Decimal__op_GreaterThanOrEqual; break;
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (49)
1073MethodSymbol ctor = UnsafeGetNullableMethod(syntax, rewrittenType, SpecialMember.System_Nullable_T__ctor);
1089MethodSymbol get_Value = UnsafeGetNullableMethod(syntax, rewrittenOperandType, SpecialMember.System_Nullable_T_get_Value);
1178if (!TryGetNullableMethod(syntax, boundTemp.Type, SpecialMember.System_Nullable_T_GetValueOrDefault, out getValueOrDefault))
1187UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor),
1271UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor),
1393MethodSymbol ctor = UnsafeGetNullableMethod(call.Syntax, resultType, SpecialMember.System_Nullable_T__ctor);
1444MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, boundTemp.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
1505SpecialMember member = GetIntPtrConversionMethod(source: source, target: rewrittenType);
1544public static SpecialMember GetIntPtrConversionMethod(TypeSymbol source, TypeSymbol target)
1559return SpecialMember.System_IntPtr__op_Explicit_FromPointer;
1570return SpecialMember.System_IntPtr__op_Explicit_FromInt32;
1577return SpecialMember.System_IntPtr__op_Explicit_FromInt64;
1584return SpecialMember.System_UIntPtr__op_Explicit_FromPointer;
1593return SpecialMember.System_UIntPtr__op_Explicit_FromUInt32;
1602return SpecialMember.System_UIntPtr__op_Explicit_FromUInt64;
1609return SpecialMember.System_IntPtr__op_Explicit_ToPointer;
1621return SpecialMember.System_IntPtr__op_Explicit_ToInt32;
1627return SpecialMember.System_IntPtr__op_Explicit_ToInt64;
1634return SpecialMember.System_UIntPtr__op_Explicit_ToPointer;
1646return SpecialMember.System_UIntPtr__op_Explicit_ToUInt32;
1652return SpecialMember.System_UIntPtr__op_Explicit_ToUInt64;
1660private static SpecialMember DecimalConversionMethod(TypeSymbol typeFrom, TypeSymbol typeTo)
1667case SpecialType.System_Char: return SpecialMember.System_Decimal__op_Explicit_ToChar;
1668case SpecialType.System_SByte: return SpecialMember.System_Decimal__op_Explicit_ToSByte;
1669case SpecialType.System_Byte: return SpecialMember.System_Decimal__op_Explicit_ToByte;
1670case SpecialType.System_Int16: return SpecialMember.System_Decimal__op_Explicit_ToInt16;
1671case SpecialType.System_UInt16: return SpecialMember.System_Decimal__op_Explicit_ToUInt16;
1672case SpecialType.System_Int32: return SpecialMember.System_Decimal__op_Explicit_ToInt32;
1673case SpecialType.System_UInt32: return SpecialMember.System_Decimal__op_Explicit_ToUInt32;
1674case SpecialType.System_Int64: return SpecialMember.System_Decimal__op_Explicit_ToInt64;
1675case SpecialType.System_UInt64: return SpecialMember.System_Decimal__op_Explicit_ToUInt64;
1676case SpecialType.System_Single: return SpecialMember.System_Decimal__op_Explicit_ToSingle;
1677case SpecialType.System_Double: return SpecialMember.System_Decimal__op_Explicit_ToDouble;
1687case SpecialType.System_Char: return SpecialMember.System_Decimal__op_Implicit_FromChar;
1688case SpecialType.System_SByte: return SpecialMember.System_Decimal__op_Implicit_FromSByte;
1689case SpecialType.System_Byte: return SpecialMember.System_Decimal__op_Implicit_FromByte;
1690case SpecialType.System_Int16: return SpecialMember.System_Decimal__op_Implicit_FromInt16;
1691case SpecialType.System_UInt16: return SpecialMember.System_Decimal__op_Implicit_FromUInt16;
1692case SpecialType.System_Int32: return SpecialMember.System_Decimal__op_Implicit_FromInt32;
1693case SpecialType.System_UInt32: return SpecialMember.System_Decimal__op_Implicit_FromUInt32;
1694case SpecialType.System_Int64: return SpecialMember.System_Decimal__op_Implicit_FromInt64;
1695case SpecialType.System_UInt64: return SpecialMember.System_Decimal__op_Implicit_FromUInt64;
1696case SpecialType.System_Single: return SpecialMember.System_Decimal__op_Explicit_FromSingle;
1697case SpecialType.System_Double: return SpecialMember.System_Decimal__op_Explicit_FromDouble;
1738SpecialMember member = DecimalConversionMethod(fromType, toType);
1800SpecialMember member = GetIntPtrConversionMethod(fromType, toType);
1814SpecialMember member = DecimalConversionMethod(fromType, toType);
1831SpecialMember member = DecimalConversionMethod(fromType, underlying);
1844SpecialMember member = DecimalConversionMethod(underlying, toType);
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (5)
83lengthGet = UnsafeGetSpecialTypeMethod(forEachSyntax, SpecialMember.System_String__Length, compilation, diagnostics);
84indexerGet = UnsafeGetSpecialTypeMethod(forEachSyntax, SpecialMember.System_String__Chars, compilation, diagnostics);
302return Binder.TryGetSpecialTypeMember(_compilation, SpecialMember.System_IDisposable__Dispose, forEachSyntax, _diagnostics, out disposeMethod);
1058MethodSymbol getLowerBoundMethod = UnsafeGetSpecialTypeMethod(forEachSyntax, SpecialMember.System_Array__GetLowerBound);
1059MethodSymbol getUpperBoundMethod = UnsafeGetSpecialTypeMethod(forEachSyntax, SpecialMember.System_Array__GetUpperBound);
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,
423if (IsConcatNonArray(call, ref _concatStringString, SpecialMember.System_String__ConcatStringString, out arguments)
424|| IsConcatNonArray(call, ref _concatStringStringString, SpecialMember.System_String__ConcatStringStringString, out arguments)
425|| IsConcatNonArray(call, ref _concatStringStringStringString, SpecialMember.System_String__ConcatStringStringStringString, out arguments))
430InitializeField(ref _concatStringArray, SpecialMember.System_String__ConcatStringArray);
443InitializeField(ref _objectToString, SpecialMember.System_Object__ToString);
455private readonly void InitializeField(ref MethodSymbol? member, SpecialMember specialMember)
463private readonly bool IsConcatNonArray(BoundCall call, ref MethodSymbol? concatMethod, SpecialMember concatSpecialMember, out ImmutableArray<BoundExpression> arguments)
489if (self.TryGetSpecialTypeMethod(syntax, SpecialMember.System_ReadOnlySpan_T__ctor_Reference, out MethodSymbol? readOnlySpanCtorRefParamGeneric, isOptional: true) &&
502return self.TryGetSpecialTypeMethod(syntax, SpecialMember.System_String__op_Implicit_ToReadOnlySpanOfChar, out stringImplicitConversionToReadOnlySpan, isOptional: true);
603SpecialMember member = (current.OperatorKind == BinaryOperatorKind.StringConcatenation) ?
604SpecialMember.System_String__ConcatStringString :
605SpecialMember.System_String__ConcatObjectObject;
662var 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);
830MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T_GetValueOrDefault);
831MethodSymbol ctor = UnsafeGetNullableMethod(syntax, type, SpecialMember.System_Nullable_T__ctor);
914MethodSymbol ctor = UnsafeGetNullableMethod(node.Syntax, binaryOperandType, SpecialMember.System_Nullable_T__ctor);
968SpecialMember member;
971case BinaryOperatorKind.Addition: member = SpecialMember.System_Decimal__op_Increment; break;
972case BinaryOperatorKind.Subtraction: member = SpecialMember.System_Decimal__op_Decrement; break;
996MethodSymbol getValueOrDefault = UnsafeGetNullableMethod(syntax, operand.Type, SpecialMember.System_Nullable_T_GetValueOrDefault);
997MethodSymbol ctor = UnsafeGetNullableMethod(syntax, operand.Type, SpecialMember.System_Nullable_T__ctor);
Lowering\SyntheticBoundNodeFactory.cs (15)
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)
804return StaticCall(CodeAnalysis.SpecialMember.System_Double__IsNaN, input);
807return StaticCall(CodeAnalysis.SpecialMember.System_Single__IsNaN, input);
845public BoundExpression StaticCall(SpecialMember method, params BoundExpression[] args)
1290getTypeFromHandle = SpecialMethod(CodeAnalysis.SpecialMember.System_Type__GetTypeFromHandle);
1475CodeAnalysis.SpecialMember.System_Reflection_MethodBase__GetMethodFromHandle :
1476CodeAnalysis.SpecialMember.System_Reflection_MethodBase__GetMethodFromHandle2);
1548MethodSymbol? arrayEmpty = SpecialMethod(CodeAnalysis.SpecialMember.System_Array__Empty, isOptional: true);
1813LocalRewriter.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);
77private static void ReportErrorOnSpecialMember(Symbol symbol, SpecialMember member, BindingDiagnosticBag diagnostics, ref bool hasError)
154get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__Equals) as MethodSymbol; }
159get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__ToString) as MethodSymbol; }
164get { return this.Compilation.GetSpecialTypeMember(SpecialMember.System_Object__GetHashCode) as MethodSymbol; }
184get { 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),
626var arraySetValueMethod = (MethodSymbol)method.DeclaringCompilation.GetSpecialTypeMember(SpecialMember.System_Array__SetValue)!;
829&& compilation.GetSpecialTypeMember(SpecialMember.System_Array__SetValue) is not null
835&& compilation.GetSpecialTypeMember(SpecialMember.System_Collections_Generic_IEnumerator_T__Current) is not null
836&& compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__Current) is not null
837&& compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__MoveNext) is not null
838&& compilation.GetSpecialTypeMember(SpecialMember.System_Collections_IEnumerator__Reset) is not null
839&& compilation.GetSpecialTypeMember(SpecialMember.System_IDisposable__Dispose) is not null;