Binder\Binder_Expressions.cs (26)
1233TypeSymbol typeType = this.GetWellKnownType(WellKnownType.System_Type, diagnostics, node);
1357return new BoundTypeOfOperator(node, boundType, null, this.GetWellKnownType(WellKnownType.System_Type, diagnostics, node), hasError);
2353TypeSymbol indexType = GetWellKnownType(WellKnownType.System_Index, diagnostics, node);
2389TypeSymbol rangeType = GetWellKnownType(WellKnownType.System_Range, diagnostics, node);
2460TypeSymbol indexType = GetWellKnownType(WellKnownType.System_Index, diagnostics, operand);
3898var spanType = GetWellKnownType(WellKnownType.System_Span_T, diagnostics, node);
6286var type = GetWellKnownType(WellKnownType.System_ReadOnlySpan_T, diagnostics, node).Construct(GetSpecialType(SpecialType.System_Byte, diagnostics, node));
7035TypeSymbol.Equals(namedType, Compilation.GetWellKnownType(WellKnownType.Windows_Foundation_IAsyncAction), TypeCompareKind.ConsiderEverything2) ||
7036TypeSymbol.Equals(namedType, Compilation.GetWellKnownType(WellKnownType.Windows_Foundation_IAsyncActionWithProgress_T), TypeCompareKind.ConsiderEverything2) ||
7037TypeSymbol.Equals(namedType, Compilation.GetWellKnownType(WellKnownType.Windows_Foundation_IAsyncOperation_T), TypeCompareKind.ConsiderEverything2) ||
7038TypeSymbol.Equals(namedType, Compilation.GetWellKnownType(WellKnownType.Windows_Foundation_IAsyncOperationWithProgress_T2), TypeCompareKind.ConsiderEverything2);
8003WellKnownType indexOrRangeWellknownType = WellKnownType.Unknown;
8024TypeSymbol resultType = indexOrRangeWellknownType == WellKnownType.System_Range
8028if (indexOrRangeWellknownType == WellKnownType.System_Index)
8050private BoundExpression ConvertToArrayIndex(BoundExpression index, BindingDiagnosticBag diagnostics, bool allowIndexAndRange, out WellKnownType indexOrRangeWellknownType)
8054indexOrRangeWellknownType = WellKnownType.Unknown;
8074result = TryImplicitConversionToArrayIndex(index, WellKnownType.System_Index, node, diagnostics);
8078result = TryImplicitConversionToArrayIndex(index, WellKnownType.System_Range, node, diagnostics);
8081indexOrRangeWellknownType = WellKnownType.System_Range;
8091indexOrRangeWellknownType = WellKnownType.System_Index;
8117private BoundExpression TryImplicitConversionToArrayIndex(BoundExpression expr, WellKnownType wellKnownType, SyntaxNode node, BindingDiagnosticBag diagnostics)
8544TypeSymbol.Equals(argType, Compilation.GetWellKnownType(WellKnownType.System_Index), TypeCompareKind.ConsiderEverything) ? ThreeState.True :
8545TypeSymbol.Equals(argType, Compilation.GetWellKnownType(WellKnownType.System_Range), TypeCompareKind.ConsiderEverything) ? ThreeState.False :
9233var wkDelegateType = returnsVoid ?
9237if (wkDelegateType != WellKnownType.Unknown)
Binder\Binder_Symbols.cs (5)
1727internal NamedTypeSymbol GetWellKnownType(WellKnownType type, BindingDiagnosticBag diagnostics, SyntaxNode node)
1736internal NamedTypeSymbol GetWellKnownType(WellKnownType type, BindingDiagnosticBag diagnostics, Location location)
1745internal static NamedTypeSymbol GetWellKnownType(CSharpCompilation compilation, WellKnownType type, BindingDiagnosticBag diagnostics, SyntaxNode node)
1750internal static NamedTypeSymbol GetWellKnownType(CSharpCompilation compilation, WellKnownType type, BindingDiagnosticBag diagnostics, Location location)
1762internal NamedTypeSymbol GetWellKnownType(WellKnownType type, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
Emitter\Model\PEAssemblyBuilder.cs (8)
438baseType: GetWellKnownType(WellKnownType.System_Attribute, diagnostics));
445GetWellKnownType(WellKnownType.System_Attribute, diagnostics),
453GetWellKnownType(WellKnownType.System_Attribute, diagnostics),
461GetWellKnownType(WellKnownType.System_Attribute, diagnostics),
469GetWellKnownType(WellKnownType.System_Attribute, diagnostics),
477GetWellKnownType(WellKnownType.System_Attribute, diagnostics));
484GetWellKnownType(WellKnownType.System_Attribute, diagnostics),
548private NamedTypeSymbol GetWellKnownType(WellKnownType type, BindingDiagnosticBag diagnostics)
Symbols\Compilation_WellKnownMembers.cs (28)
98: this.GetWellKnownType((WellKnownType)descriptor.DeclaringTypeId);
118internal NamedTypeSymbol GetWellKnownType(WellKnownType type)
124int index = (int)type - (int)WellKnownType.First;
144DiagnosticBag? legacyWarnings = (type <= WellKnownType.CSharp7Sentinel) ? warnings : null;
195return IsEqualOrDerivedFromWellKnownClass(type, WellKnownType.System_Attribute, ref discardedUseSiteInfo);
205return IsEqualOrDerivedFromWellKnownClass(type, WellKnownType.System_Exception, ref useSiteInfo);
210return TypeSymbol.Equals(type.OriginalDefinition, GetWellKnownType(WellKnownType.System_ReadOnlySpan_T), TypeCompareKind.ConsiderEverything2);
213internal bool IsEqualOrDerivedFromWellKnownClass(TypeSymbol type, WellKnownType wellKnownType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
215Debug.Assert(wellKnownType == WellKnownType.System_Attribute ||
216wellKnownType == WellKnownType.System_Exception);
229return TypeSymbol.Equals((TypeSymbol)type, GetWellKnownType(WellKnownType.System_Type), TypeCompareKind.ConsiderEverything2);
237internal override ITypeSymbolInternal CommonGetWellKnownType(WellKnownType wellknownType)
493GetWellKnownType(WellKnownType.System_Diagnostics_DebuggerBrowsableState),
568WellKnownType.System_Runtime_CompilerServices_IsReadOnlyAttribute,
575WellKnownType.System_Runtime_CompilerServices_IsByRefLikeAttribute,
582WellKnownType.System_Runtime_CompilerServices_IsUnmanagedAttribute,
590WellKnownType.System_Runtime_CompilerServices_NullableAttribute,
598WellKnownType.System_Runtime_CompilerServices_NullableContextAttribute,
605WellKnownType.System_Runtime_CompilerServices_NullablePublicOnlyAttribute,
614WellKnownType.System_Runtime_CompilerServices_NativeIntegerAttribute,
622WellKnownType.System_Runtime_CompilerServices_ScopedRefAttribute,
629WellKnownType.System_Runtime_CompilerServices_RefSafetyRulesAttribute,
637private bool CheckIfAttributeShouldBeEmbedded(BindingDiagnosticBag? diagnosticsOpt, Location? locationOpt, WellKnownType attributeType, WellKnownMember attributeCtor, WellKnownMember? secondAttributeCtor = null)
672TypeSymbol debuggableAttribute = GetWellKnownType(WellKnownType.System_Diagnostics_DebuggableAttribute);
679TypeSymbol debuggingModesType = GetWellKnownType(WellKnownType.System_Diagnostics_DebuggableAttribute__DebuggingModes);
785var attributeTargetsType = GetWellKnownType(WellKnownType.System_AttributeTargets);
1223WellKnownType wellKnownId = (WellKnownType)typeId;
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.UnitTests (2)