Binder\Binder_Deconstruct.cs (6)
46.CheckFeatureAvailability(diagnostics, Compilation, node.Location);
55.CheckFeatureAvailability(diagnostics, Compilation, node.Location);
329GenerateImplicitConversionError(diagnostics, Compilation, single.Syntax, nestedConversion, tupleOrDeconstructedTypes[i], single.Type);
537compilation: Compilation,
580bool disallowInferredNames = this.Compilation.LanguageVersion.DisallowInferredTupleElementNames();
585tupleNames, this.Compilation,
Binder\Binder_Expressions.cs (62)
232return new ExtendedErrorTypeSymbol(this.Compilation, name, arity: 0, errorInfo: null, unreported: false);
324SymbolDistinguisher distinguisher = new SymbolDistinguisher(this.Compilation, trueSymbol, falseSymbol);
981bool disallowInferredNames = this.Compilation.LanguageVersion.DisallowInferredTupleElementNames();
990Compilation,
1069bool disallowInferredNames = this.Compilation.LanguageVersion.DisallowInferredTupleElementNames();
1072this.Compilation, syntax: node, diagnostics: diagnostics, shouldCheckConstraints: true,
1077NamedTypeSymbol.VerifyTupleTypePresent(elements.Length, node, this.Compilation, diagnostics);
1227TypeSymbol typedReferenceType = this.Compilation.GetSpecialType(SpecialType.System_TypedReference);
1275TypeSymbol typedReferenceType = this.Compilation.GetSpecialType(SpecialType.System_TypedReference);
1436bool typeHasErrors = type.IsErrorType() || CheckManagedAddr(Compilation, type, node.Location, diagnostics);
1452diagnostics.Add(ErrorCode.WRN_FieldIsAmbiguous, node, Compilation.LanguageVersion.ToDisplayString());
1516if (Compilation.LanguageVersion >= requiredVersion)
2006this.Compilation, name: "var", arity: 0, errorInfo: null, variableUsedBeforeDeclaration: true);
2069this.Compilation, name: "var", arity: 0, errorInfo: null, variableUsedBeforeDeclaration: true);
2085this.Compilation, name: "var", arity: 0, errorInfo: null, variableUsedBeforeDeclaration: true);
2378TypeSymbol hostObjectType = Compilation.GetHostObjectTypeSymbol();
2812SymbolDistinguisher distinguisher1 = new SymbolDistinguisher(this.Compilation, operand.Type, targetType);
2887SymbolDistinguisher distinguisher = new SymbolDistinguisher(this.Compilation, operand.Type, targetType);
3061if (Compilation.FeatureStrictEnabled || !isDelegateCreation)
3381if (!hadLangVersionError && !Compilation.LanguageVersion.AllowNonTrailingNamedArguments())
3896if (!Compilation.IsFeatureEnabled(MessageID.IDS_FeatureRefReadonlyParameters))
4138var arrayType = ArrayTypeSymbol.CreateCSharpArray(Compilation.Assembly, TypeWithAnnotations.Create(bestType), rank);
4160CheckManagedAddr(Compilation, bestType, node.Location, diagnostics, errorForManaged: true);
4372this.Compilation.CreateArrayTypeSymbol(GetSpecialType(SpecialType.System_Object, diagnostics, node)),
4518hasErrors = hasErrors || CheckManagedAddr(Compilation, elementType.Type, elementTypeSyntax.Location, diagnostics, errorForManaged: true);
4580if (requiredVersion > Compilation.LanguageVersion)
6313initializerType.ContainingModule != Compilation.SourceModule)
6659Debug.Assert((object)this.Compilation.Assembly != null);
6660return IsSymbolAccessibleConditional(constructor, this.Compilation.Assembly, ref useSiteInfo);
7007SymbolDistinguisher distinguisher = new SymbolDistinguisher(this.Compilation, coClassType, interfaceType);
7627type: Compilation.DynamicType,
7943Compilation.LanguageVersion < MessageID.IDS_FeatureNullableReferenceTypes.RequiredVersion())
8257TypeSymbol.Equals(namedType, Compilation.GetWellKnownType(WellKnownType.Windows_Foundation_IAsyncAction), TypeCompareKind.ConsiderEverything2) ||
8258TypeSymbol.Equals(namedType, Compilation.GetWellKnownType(WellKnownType.Windows_Foundation_IAsyncActionWithProgress_T), TypeCompareKind.ConsiderEverything2) ||
8259TypeSymbol.Equals(namedType, Compilation.GetWellKnownType(WellKnownType.Windows_Foundation_IAsyncOperation_T), TypeCompareKind.ConsiderEverything2) ||
8260TypeSymbol.Equals(namedType, Compilation.GetWellKnownType(WellKnownType.Windows_Foundation_IAsyncOperationWithProgress_T2), TypeCompareKind.ConsiderEverything2);
8723&& (object)method.ReduceExtensionMethod(receiverType, binder.Compilation) == null)
8728&& SourceNamedTypeSymbol.GetCompatibleSubstitutedMember(binder.Compilation, method, receiverType) == null)
8983if ((object)Compilation.SourceModule != fieldSymbol.OriginalDefinition.ContainingModule &&
8987if (!Compilation.Assembly.RuntimeSupportsByRefFields)
9089if (!Compilation.Assembly.RuntimeSupportsStaticAbstractMembersInInterfaces && Compilation.SourceModule != symbol.ContainingModule)
9101else if (!Compilation.Assembly.RuntimeSupportsDefaultInterfaceImplementation && Compilation.SourceModule != symbol.ContainingModule)
9560if (!Compilation.Assembly.RuntimeSupportsInlineArrayTypes)
9573resultType = Compilation.GetWellKnownType(
9596int? constIndex = InferConstantIndexFromSystemIndex(Compilation, convertedIndex, length, out location);
10284TypeSymbol.Equals(argType, Compilation.GetWellKnownType(WellKnownType.System_Index), TypeCompareKind.ConsiderEverything) ? ThreeState.True :
10285TypeSymbol.Equals(argType, Compilation.GetWellKnownType(WellKnownType.System_Range), TypeCompareKind.ConsiderEverything) ? ThreeState.False :
10417var intPlaceholder = new BoundImplicitIndexerValuePlaceholder(syntax, Compilation.GetSpecialType(SpecialType.System_Int32)) { WasCompilerGenerated = true };
10488var startArgumentPlaceholder = new BoundImplicitIndexerValuePlaceholder(syntax, Compilation.GetSpecialType(SpecialType.System_Int32)) { WasCompilerGenerated = true };
10489var lengthArgumentPlaceholder = new BoundImplicitIndexerValuePlaceholder(syntax, Compilation.GetSpecialType(SpecialType.System_Int32)) { WasCompilerGenerated = true };
10894if (m.ReduceExtensionMethod(receiver.Type, Compilation) is { } reduced)
10983if (Compilation.LanguageVersion < LanguageVersion.CSharp13)
11090var substituted = (MethodSymbol?)extensionMember.GetReducedAndFilteredSymbol(typeArguments, receiver.Type, Compilation, checkFullyInferred: true);
11158new ConstraintsHelper.CheckConstraintsArgs(this.Compilation, this.Conversions, includeNullability: false, location: NoLocation.Singleton, diagnostics: null),
11230var delegateType = Compilation.GetWellKnownType(wkDelegateType);
11235if (checkConstraints(Compilation, Conversions, delegateType, typeArguments))
11261return Compilation.AnonymousTypeManager.ConstructAnonymousDelegateSymbol(typeDescr);
11379resultIsUsed = (((SimpleLambdaExpressionSyntax)parent).Body != node) || MethodOrLambdaRequiresValue(ContainingMemberOrLambda, Compilation);
11383resultIsUsed = (((ParenthesizedLambdaExpressionSyntax)parent).Body != node) || MethodOrLambdaRequiresValue(ContainingMemberOrLambda, Compilation);
11387resultIsUsed = (((ArrowExpressionClauseSyntax)parent).Expression != node) || MethodOrLambdaRequiresValue(ContainingMemberOrLambda, Compilation);
Binder\Binder_Invocation.cs (18)
385CheckRestrictedTypeReceiver(result, this.Compilation, diagnostics);
492type: Compilation.DynamicType,
504if (!Compilation.LanguageVersion.AllowNonTrailingNamedArguments())
1014(typeArgumentsOpt.IsDefault || ((MethodSymbol)(object)result.Member).CheckConstraints(new ConstraintsHelper.CheckConstraintsArgs(this.Compilation, this.Conversions, includeNullability: false, syntax.Location, candidateDiagnostics))))
1449if (GetWellKnownTypeMember(Compilation, WellKnownMember.System_Runtime_InteropServices_UnknownWrapper__ctor, diagnostics, syntax: syntax) is MethodSymbol methodSymbol)
1458if (GetWellKnownTypeMember(Compilation, WellKnownMember.System_Runtime_InteropServices_DispatchWrapper__ctor, diagnostics, syntax: syntax) is MethodSymbol methodSymbol)
1467if (GetWellKnownTypeMember(Compilation, WellKnownMember.System_Type__Missing, diagnostics, syntax: syntax) is FieldSymbol fieldSymbol)
1684defaultValue = new BoundLiteral(syntax, ConstantValue.Create(line), Compilation.GetSpecialType(SpecialType.System_Int32)) { WasCompilerGenerated = true };
1688string path = callerSourceLocation.SourceTree.GetDisplayPath(callerSourceLocation.SourceSpan, Compilation.Options.SourceReferenceResolver);
1689defaultValue = new BoundLiteral(syntax, ConstantValue.Create(path), Compilation.GetSpecialType(SpecialType.System_String)) { WasCompilerGenerated = true };
1694defaultValue = new BoundLiteral(syntax, ConstantValue.Create(memberName), Compilation.GetSpecialType(SpecialType.System_String)) { WasCompilerGenerated = true };
1698&& Conversions.ClassifyBuiltInConversion(Compilation.GetSpecialType(SpecialType.System_String), parameterType, isChecked: false, ref discardedUseSiteInfo).Exists
1703defaultValue = new BoundLiteral(syntax, ConstantValue.Create(argument.Syntax.ToString()), Compilation.GetSpecialType(SpecialType.System_String)) { WasCompilerGenerated = true };
1725TypeSymbol constantType = Compilation.GetSpecialType(defaultConstantValue.SpecialType);
1791if (Compilation.SourceModule != paramsParameter.ContainingModule)
1997var returnType = GetCommonTypeOrReturnType(methods) ?? new ExtendedErrorTypeSymbol(this.Compilation, string.Empty, arity: 0, errorInfo: null);
2227TypeSymbol returnType = new ExtendedErrorTypeSymbol(this.Compilation, string.Empty, arity: 0, errorInfo: null);
2314return new BoundNameOfOperator(node, boundArgument, ConstantValue.Create(name), Compilation.GetSpecialType(SpecialType.System_String));
Binder\Binder_Lookup.cs (29)
205if (this.Compilation.LanguageVersion.AllowNewExtensions())
334bool isSubmissionTree = Compilation.IsSubmissionSyntaxTree(declarationSyntax.SyntaxTree);
337for (CSharpCompilation submission = Compilation; submission != null; submission = submission.PreviousSubmission)
341var isCurrentSubmission = submission == Compilation;
355submissionImports = ((SourceNamespaceSymbol)Compilation.SourceModule.GlobalNamespace).GetImports(declarationSyntax, basesBeingResolved);
389submissionImports = Imports.ExpandPreviousSubmissionImports(submissionImports, Compilation);
465Compilation.MarkImportDirectiveAsUsed(directive);
787if (Compilation.IsEqualOrDerivedFromWellKnownClass(namedType, WellKnownType.System_Attribute, ref useSiteInfo))
926var error = new ExtendedErrorTypeSymbol(this.Compilation, name, arity, diagInfo, unreported: true);
938currentType = currentType.GetNextBaseTypeNoUseSiteDiagnostics(basesBeingResolved, this.Compilation, ref visited);
1045idictSymbol = Compilation.GetWellKnownType(WellKnownType.System_Collections_Generic_IDictionary_KV);
1046iroDictSymbol = Compilation.GetWellKnownType(WellKnownType.System_Collections_Generic_IReadOnlyDictionary_KV);
1047iListSymbol = Compilation.GetWellKnownType(WellKnownType.System_Collections_IList);
1048iCollectionSymbol = Compilation.GetWellKnownType(WellKnownType.System_Collections_ICollection);
1049inccSymbol = Compilation.GetWellKnownType(WellKnownType.System_Collections_Specialized_INotifyCollectionChanged);
1050inpcSymbol = Compilation.GetWellKnownType(WellKnownType.System_ComponentModel_INotifyPropertyChanged);
1247this.LookupMembersInClass(tmp, this.Compilation.GetSpecialType(SpecialType.System_Object), name, arity, basesBeingResolved, options, originalBinder, type, diagnose, ref useSiteInfo);
1339if (!IsDerivedType(baseType: hiddenContainer, derivedType: hidingSym.ContainingType, basesBeingResolved, this.Compilation, useSiteInfo: ref useSiteInfo) &&
1436if ((object)symbol.DeclaringCompilation != this.Compilation
1493else if (!this.Compilation.SourceModule.Equals(unwrappedSymbol.ContainingModule) && unwrappedSymbol.IsHiddenByCodeAnalysisEmbeddedAttribute())
1548diagInfo = new CSDiagnosticInfo(ErrorCode.ERR_FriendRefNotEqualToThis, unwrappedSymbol.ContainingAssembly.Identity.ToString(), AssemblyIdentity.PublicKeyToString(this.Compilation.Assembly.PublicKey));
1596var assemblyName = this.Compilation.AssemblyName;
1607ImmutableArray<byte> publicKey = this.Compilation.Assembly.PublicKey;
1733return !IsEffectivelyPrivate(symbol) || symbol.ContainingAssembly == this.Compilation.Assembly;
1977for (CSharpCompilation submission = Compilation; submission != null; submission = submission.PreviousSubmission)
1984bool isCurrentSubmission = submission == Compilation;
1992submissionImports = Imports.ExpandPreviousSubmissionImports(submissionImports, Compilation);
2098type = type.GetNextBaseTypeNoUseSiteDiagnostics(null, this.Compilation, ref visited);
2115this.AddMemberLookupSymbolsInfoInClass(result, Compilation.GetSpecialType(SpecialType.System_Object), options, originalBinder, accessThroughType);
Binder\Binder_Operators.cs (14)
64var finalDynamicConversion = this.Compilation.Conversions.ClassifyConversionFromExpression(placeholder, left.Type, isChecked: CheckOverflowAtRuntime, ref useSiteInfo);
77Compilation.DynamicType),
292if (!eventSymbol.OriginalDefinition.IsFromCompilation(this.Compilation))
419type: Compilation.DynamicType,
882return type is NamedTypeSymbol namedType && Compilation.IsReadOnlySpanType(namedType) &&
1066var booleanType = Compilation.GetSpecialType(SpecialType.System_Boolean);
1384operatorMethod.ContainingModule != Compilation.SourceModule)
2399if (Compilation.SourceModule != methodOpt.ContainingModule)
2403if (!Compilation.Assembly.RuntimeSupportsStaticAbstractMembersInInterfaces)
2427if (Compilation.SourceModule != methodOpt.ContainingModule)
2545hasErrors = CheckManagedAddr(Compilation, operandType, managedKind, node.Location, diagnostics);
3831bool hasErrors = ReportAsOperatorConversionDiagnostics(node, diagnostics, this.Compilation, operandType, targetType, conversion.Kind, operand.ConstantValueOpt);
4441if (Compilation.Assembly.RuntimeSupportsNumericIntPtr)
4457if (Compilation.Assembly.RuntimeSupportsNumericIntPtr)
Binder\Binder_Patterns.cs (17)
59this.Compilation, pattern.Syntax, expression, innerPattern, whenTrueLabel: whenTrueLabel, whenFalseLabel: whenFalseLabel, diagnostics);
363hasErrors |= !TryGetSpecialTypeMember(Compilation, SpecialMember.System_Array__Length, node, diagnostics, out PropertySymbol lengthProperty);
632if (Compilation.LanguageVersion < requiredVersion && !patternExpressionConversion.IsImplicit)
654if (MessageID.IDS_FeatureSpanCharConstantPattern.CheckFeatureAvailability(diagnostics, Compilation, node.Location))
774if (requiredVersion > Compilation.LanguageVersion)
778Compilation.LanguageVersion.ToDisplayString(),
1114var objectType = Compilation.GetSpecialType(SpecialType.System_Object);
1141var objectType = Compilation.GetSpecialType(SpecialType.System_Object);
1246if (Compilation.LanguageVersion < MessageID.IDS_FeatureRecursivePatterns.RequiredVersion())
1251iTupleType = Compilation.GetWellKnownType(WellKnownType.System_Runtime_CompilerServices_ITuple);
1260if (declType != (object)Compilation.GetSpecialType(SpecialType.System_Object) &&
1261declType != (object)Compilation.DynamicType &&
1269iTupleGetLength = (MethodSymbol?)Compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_CompilerServices_ITuple__get_Length);
1270iTupleGetItem = (MethodSymbol?)Compilation.GetWellKnownTypeMember(WellKnownMember.System_Runtime_CompilerServices_ITuple__get_Item);
1287var result = Compilation.Conversions.ClassifyBuiltInConversion(type, possibleBaseInterface, isChecked: CheckOverflowAtRuntime, ref useSiteInfo).IsImplicit;
1324|| (inputType.IsPointerType() && Compilation.LanguageVersion < MessageID.IDS_FeatureRecursivePatterns.RequiredVersion()))
1357var declType = TypeWithState.ForType(inputType).ToTypeWithAnnotations(Compilation);
Binder\Binder_Statements.cs (19)
174if (!this.Compilation.Options.AllowUnsafe)
270else if (InUnsafeRegion && Compilation.IsFeatureEnabled(MessageID.IDS_FeatureRefUnsafeInIteratorAsync))
396if (Compilation.LanguageVersion < MessageID.IDS_FeatureSwitchExpression.RequiredVersion())
413if ((object)type == null || !type.IsErrorType() && !Compilation.IsExceptionType(type.EffectiveType(ref useSiteInfo), ref useSiteInfo))
641return method.ReturnsVoid || method.IsIterator || method.IsAsyncEffectivelyReturningTask(this.Compilation);
1310if (CheckManagedAddr(Compilation, elementType, initializerSyntax.Location, diagnostics))
1375GenerateImplicitConversionError(diagnostics, this.Compilation, initializerSyntax, elementConversionClassification, pointerType, declType);
2032var reason = Conversions.IsAnonymousFunctionCompatibleWithType(anonymousFunction, targetType, this.Compilation);
2161this.Compilation))
2219SymbolDistinguisher distinguisher = new SymbolDistinguisher(this.Compilation, lambdaParameterType, delegateParameterType);
2452GenerateImplicitConversionError(diagnostics, this.Compilation, syntax, conversion, sourceType, targetType, operand.ConstantValueOpt);
2961return symbol?.Kind == SymbolKind.Method && ((MethodSymbol)symbol).IsAsyncEffectivelyReturningTask(this.Compilation);
2967return symbol?.Kind == SymbolKind.Method && ((MethodSymbol)symbol).IsAsyncEffectivelyReturningGenericTask(this.Compilation);
2976return method.IsAsyncReturningIAsyncEnumerable(this.Compilation) ||
2977method.IsAsyncReturningIAsyncEnumerator(this.Compilation);
3276if (!Compilation.IsExceptionType(effectiveType, ref useSiteInfo))
3329else if (TypeSymbol.Equals(previousType, Compilation.GetWellKnownType(WellKnownType.System_Exception), TypeCompareKind.ConsiderEverything2) &&
3330Compilation.SourceAssembly.RuntimeCompatibilityWrapNonExceptionThrows)
3802initializerInvocation = BindImplicitConstructorInitializer((MethodSymbol)this.ContainingMember(), diagnostics, Compilation);
Binder\Binder_Symbols.cs (37)
358return this.Compilation.Assembly.GlobalNamespace;
365return this.Compilation.GlobalNamespaceAlias;
552TypeWithAnnotations constructedType = typeArgument.SetIsAnnotated(Compilation);
558diagnostics.Add(new LazyUseSiteDiagnosticsInfoForNullableType(Compilation.LanguageVersion, constructedType), syntax.GetLocation());
565type.CheckConstraints(new ConstraintsHelper.CheckConstraintsArgs(this.Compilation, this.Conversions, includeNullability: true, location, diagnostics));
567else if (GetNullableUnconstrainedTypeParameterDiagnosticIfNecessary(Compilation.LanguageVersion, constructedType) is { } diagnosticInfo)
606CheckManagedAddr(Compilation, elementType.Type, node.Location, diagnostics);
677var array = ArrayTypeSymbol.CreateCSharpArray(this.Compilation.Assembly, type, rankSpecifier.Rank);
730ReportMissingTupleElementNamesAttributesIfNeeded(Compilation, syntax.GetLocation(), diagnostics);
741bool includeNullability = Compilation.IsFeatureEnabled(MessageID.IDS_FeatureNullableReferenceTypes);
748this.Compilation,
842return TypeWithAnnotations.Create(new ExtendedErrorTypeSymbol(qualifierOpt ?? this.Compilation.Assembly.GlobalNamespace, string.Empty, arity: 0, errorInfo: null));
869Compilation.Assembly.GlobalNamespace, identifierValueText, 0,
897bindingResult = Compilation.DynamicType;
939if (Compilation.LanguageVersion < MessageID.IDS_FeatureDynamic.RequiredVersion())
1051if (!Compilation.HasDynamicEmitAttributes(bag, node.Location))
1339return new ExtendedErrorTypeSymbol(this.Compilation, name, arity, diagnosticInfo, unreported: false);
1366var binder = !Compilation.IsFeatureEnabled(MessageID.IDS_FeatureUsingTypeAlias)
1555if (method.ReduceExtensionMethod(receiverType, Compilation) is not null)
1589bool includeNullability = Compilation.IsFeatureEnabled(MessageID.IDS_FeatureNullableReferenceTypes);
1590type.CheckConstraintsForNamedType(new ConstraintsHelper.CheckConstraintsArgs(this.Compilation, this.Conversions, includeNullability, typeSyntax.Location, diagnostics),
1659return GetSpecialType(this.Compilation, typeId, node, diagnostics);
1684return GetSpecialTypeMember(this.Compilation, member, diagnostics, syntax);
1787return GetWellKnownType(this.Compilation, type, diagnostics, location);
1813NamedTypeSymbol typeSymbol = this.Compilation.GetWellKnownType(type);
1821return GetWellKnownTypeMember(Compilation, member, diagnostics, location, syntax, isOptional);
1930if (container is object && container != Compilation.Assembly && container != Compilation.Assembly.CorLibrary)
2155if (ns.ContainingAssembly == Compilation.Assembly)
2167Debug.Assert(arg2.ContainingAssembly == Compilation.Assembly);
2210Compilation.IsAttributeType((NamedTypeSymbol)first) &&
2211Compilation.IsAttributeType((NamedTypeSymbol)second))
2269((SourceModuleSymbol)this.Compilation.SourceModule).AnyReferencedAssembliesAreLinked)
2324return new ExtendedErrorTypeSymbol(qualifierOpt ?? Compilation.Assembly.GlobalNamespace, simpleName, arity, info);
2486var compilation = this.Compilation;
2588if (ReferenceEquals(qualifierOpt, Compilation.GlobalNamespace))
2644Compilation.Assembly.Modules[0].GetReferencedAssemblySymbols())
Binder\ForEachLoopBinder.cs (16)
244messageId.CheckFeatureAvailability(diagnostics, Compilation, collectionExpr.Syntax.Location);
499SymbolDistinguisher distinguisher = new SymbolDistinguisher(this.Compilation, inferredType.Type, iterationVariableType.Type);
580IsIEnumerableT(builder.CollectionType.OriginalDefinition, IsAsync, Compilation) ||
1085this.Compilation.GetWellKnownType(WellKnownType.System_Collections_Generic_IAsyncEnumerable_T) :
1086this.Compilation.GetSpecialType(SpecialType.System_Collections_Generic_IEnumerable_T));
1109getEnumeratorMethod = (MethodSymbol)GetWellKnownTypeMember(Compilation, WellKnownMember.System_Collections_Generic_IAsyncEnumerable_T__GetAsyncEnumerator,
1145Debug.Assert(enumeratorType.OriginalDefinition.Equals(Compilation.GetWellKnownType(WellKnownType.System_Collections_Generic_IAsyncEnumerator_T)));
1155currentPropertyGetter = (MethodSymbol)GetWellKnownTypeMember(Compilation, WellKnownMember.System_Collections_Generic_IAsyncEnumerator_T__get_Current, diagnostics, errorLocationSyntax.Location, isOptional: false);
1284NamedTypeSymbol targetInterface = isAsync ? this.Compilation.GetWellKnownType(WellKnownType.System_IAsyncDisposable) : this.Compilation.GetSpecialType(SpecialType.System_IDisposable);
1294enumeratorType.ContainingModule != Compilation.SourceModule)
1330TypeSymbol.Equals(builder.GetEnumeratorInfo.Method.ReturnType, this.Compilation.GetSpecialType(SpecialType.System_Collections_IEnumerator), TypeCompareKind.ConsiderEverything2));
1782return type.OriginalDefinition.Equals(Compilation.GetWellKnownType(WellKnownType.System_Collections_Generic_IAsyncEnumerable_T));
1805NamedTypeSymbol implementedIEnumerable = GetIEnumerableOfT(type, isAsync, Compilation, ref useSiteInfo, out foundMultiple, out bool needSupportForRefStructInterfaces);
1814var implementedNonGeneric = this.Compilation.GetSpecialType(SpecialType.System_Collections_IEnumerable);
1823if (implementedIEnumerable is not null && needSupportForRefStructInterfaces && type.ContainingModule != Compilation.SourceModule)