src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (20)
62new SymbolKindOrTypeKind(TypeKind.Class),
63new SymbolKindOrTypeKind(TypeKind.Struct),
64new SymbolKindOrTypeKind(TypeKind.Interface),
65new SymbolKindOrTypeKind(TypeKind.Delegate),
66new SymbolKindOrTypeKind(TypeKind.Enum),
67new SymbolKindOrTypeKind(TypeKind.Module),
68new SymbolKindOrTypeKind(TypeKind.Pointer),
75new SymbolKindOrTypeKind(TypeKind.TypeParameter),
293foreach (var typeKindElement in symbolKindListElement.Elements(nameof(TypeKind)))
344public SymbolKindOrTypeKind(TypeKind typeKind)
355public TypeKind? TypeKind => (_category == SymbolCategory.Type) ? (TypeKind)_kind : null;
362SymbolCategory.Type => symbol is ITypeSymbol type && type.TypeKind == (TypeKind)_kind,
371SymbolCategory.Type => new XElement(nameof(TypeKind), GetTypeKindString((TypeKind)_kind)),
376private static string GetTypeKindString(TypeKind typeKind)
383CodeAnalysis.TypeKind.Structure => nameof(CodeAnalysis.TypeKind.Struct),
433=> new((TypeKind)Enum.Parse(typeof(TypeKind), typeKindElement.Value));
441public static implicit operator SymbolKindOrTypeKind(TypeKind symbolKind)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (20)
62new SymbolKindOrTypeKind(TypeKind.Class),
63new SymbolKindOrTypeKind(TypeKind.Struct),
64new SymbolKindOrTypeKind(TypeKind.Interface),
65new SymbolKindOrTypeKind(TypeKind.Delegate),
66new SymbolKindOrTypeKind(TypeKind.Enum),
67new SymbolKindOrTypeKind(TypeKind.Module),
68new SymbolKindOrTypeKind(TypeKind.Pointer),
75new SymbolKindOrTypeKind(TypeKind.TypeParameter),
293foreach (var typeKindElement in symbolKindListElement.Elements(nameof(TypeKind)))
344public SymbolKindOrTypeKind(TypeKind typeKind)
355public TypeKind? TypeKind => (_category == SymbolCategory.Type) ? (TypeKind)_kind : null;
362SymbolCategory.Type => symbol is ITypeSymbol type && type.TypeKind == (TypeKind)_kind,
371SymbolCategory.Type => new XElement(nameof(TypeKind), GetTypeKindString((TypeKind)_kind)),
376private static string GetTypeKindString(TypeKind typeKind)
383CodeAnalysis.TypeKind.Structure => nameof(CodeAnalysis.TypeKind.Struct),
433=> new((TypeKind)Enum.Parse(typeof(TypeKind), typeKindElement.Value));
441public static implicit operator SymbolKindOrTypeKind(TypeKind symbolKind)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (20)
62new SymbolKindOrTypeKind(TypeKind.Class),
63new SymbolKindOrTypeKind(TypeKind.Struct),
64new SymbolKindOrTypeKind(TypeKind.Interface),
65new SymbolKindOrTypeKind(TypeKind.Delegate),
66new SymbolKindOrTypeKind(TypeKind.Enum),
67new SymbolKindOrTypeKind(TypeKind.Module),
68new SymbolKindOrTypeKind(TypeKind.Pointer),
75new SymbolKindOrTypeKind(TypeKind.TypeParameter),
293foreach (var typeKindElement in symbolKindListElement.Elements(nameof(TypeKind)))
344public SymbolKindOrTypeKind(TypeKind typeKind)
355public TypeKind? TypeKind => (_category == SymbolCategory.Type) ? (TypeKind)_kind : null;
362SymbolCategory.Type => symbol is ITypeSymbol type && type.TypeKind == (TypeKind)_kind,
371SymbolCategory.Type => new XElement(nameof(TypeKind), GetTypeKindString((TypeKind)_kind)),
376private static string GetTypeKindString(TypeKind typeKind)
383CodeAnalysis.TypeKind.Structure => nameof(CodeAnalysis.TypeKind.Struct),
433=> new((TypeKind)Enum.Parse(typeof(TypeKind), typeKindElement.Value));
441public static implicit operator SymbolKindOrTypeKind(TypeKind symbolKind)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (20)
62new SymbolKindOrTypeKind(TypeKind.Class),
63new SymbolKindOrTypeKind(TypeKind.Struct),
64new SymbolKindOrTypeKind(TypeKind.Interface),
65new SymbolKindOrTypeKind(TypeKind.Delegate),
66new SymbolKindOrTypeKind(TypeKind.Enum),
67new SymbolKindOrTypeKind(TypeKind.Module),
68new SymbolKindOrTypeKind(TypeKind.Pointer),
75new SymbolKindOrTypeKind(TypeKind.TypeParameter),
293foreach (var typeKindElement in symbolKindListElement.Elements(nameof(TypeKind)))
344public SymbolKindOrTypeKind(TypeKind typeKind)
355public TypeKind? TypeKind => (_category == SymbolCategory.Type) ? (TypeKind)_kind : null;
362SymbolCategory.Type => symbol is ITypeSymbol type && type.TypeKind == (TypeKind)_kind,
371SymbolCategory.Type => new XElement(nameof(TypeKind), GetTypeKindString((TypeKind)_kind)),
376private static string GetTypeKindString(TypeKind typeKind)
383CodeAnalysis.TypeKind.Structure => nameof(CodeAnalysis.TypeKind.Struct),
433=> new((TypeKind)Enum.Parse(typeof(TypeKind), typeKindElement.Value));
441public static implicit operator SymbolKindOrTypeKind(TypeKind symbolKind)
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.cs (2)
24protected abstract bool TryInitializeImplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
25protected abstract bool TryInitializeExplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
Binder\Binder_Conversions.cs (26)
780case TypeKind.Enum:
781case TypeKind.Struct:
782case TypeKind.Class when !type.IsAnonymousType: // We don't want to enable object creation with unspeakable types
784case TypeKind.TypeParameter:
786case TypeKind.Delegate:
788case TypeKind.Interface:
790case TypeKind.Array:
791case TypeKind.Class:
792case TypeKind.Dynamic:
794goto case TypeKind.Error;
795case TypeKind.Pointer:
796case TypeKind.FunctionPointer:
798goto case TypeKind.Error;
799case TypeKind.Error:
2810Debug.Assert(delegateType is NamedTypeSymbol { TypeKind: TypeKind.Delegate, DelegateInvokeMethod: { HasUseSiteError: false } }
2811|| delegateType.TypeKind == TypeKind.FunctionPointer,
2927static bool hasConversion(TypeKind targetKind, Conversions conversions, TypeSymbol source, TypeSymbol destination,
2948return targetKind == TypeKind.FunctionPointer
2953static ErrorCode getMethodMismatchErrorCode(TypeKind type)
2956TypeKind.Delegate => ErrorCode.ERR_MethDelegateMismatch,
2957TypeKind.FunctionPointer => ErrorCode.ERR_MethFuncPtrMismatch,
2961static ErrorCode getRefMismatchErrorCode(TypeKind type)
2964TypeKind.Delegate => ErrorCode.ERR_DelegateRefMismatch,
2965TypeKind.FunctionPointer => ErrorCode.ERR_FuncPtrRefMismatch,
3001Debug.Assert(Conversions.IsAssignableFromMulticastDelegate(delegateOrFuncPtrType, ref discardedUseSiteInfo) || delegateOrFuncPtrType.TypeKind == TypeKind.Delegate || delegateOrFuncPtrType.TypeKind == TypeKind.FunctionPointer);
Symbols\TypeSymbolExtensions.cs (70)
72if (type.TypeKind != TypeKind.TypeParameter)
118if (type.TypeKind == TypeKind.TypeParameter)
223return type.TypeKind == TypeKind.Enum;
318case TypeKind.Pointer:
319case TypeKind.Dynamic:
320case TypeKind.FunctionPointer:
336return type.TypeKind == TypeKind.Class;
342return type.TypeKind == TypeKind.Struct;
358return type.TypeKind == TypeKind.Dynamic;
364return type.TypeKind == TypeKind.TypeParameter;
370return type.TypeKind == TypeKind.Array;
376return type.TypeKind == TypeKind.Array && ((ArrayTypeSymbol)type).IsSZArray;
401return type.TypeKind == TypeKind.FunctionPointer;
408case TypeKind.Pointer:
409case TypeKind.FunctionPointer:
421case TypeKind.Class:
422case TypeKind.Struct:
425case TypeKind.TypeParameter:
571return type.TypeKind == TypeKind.Delegate;
707case TypeKind.Class:
708case TypeKind.Struct:
709case TypeKind.Interface:
710case TypeKind.Enum:
711case TypeKind.Delegate:
712case TypeKind.Submission:
782case TypeKind.Class:
783case TypeKind.Struct:
784case TypeKind.Interface:
785case TypeKind.Enum:
786case TypeKind.Delegate:
801case TypeKind.Submission:
840case TypeKind.Dynamic:
841case TypeKind.TypeParameter:
842case TypeKind.Submission:
843case TypeKind.Enum:
853goto case TypeKind.Delegate;
855case TypeKind.Error:
856case TypeKind.Class:
857case TypeKind.Struct:
858case TypeKind.Interface:
859case TypeKind.Delegate:
860case TypeKind.Extension:
928case TypeKind.Array:
932case TypeKind.Pointer:
936case TypeKind.FunctionPointer:
1171if (ReferenceEquals(parent2.OriginalDefinition, parent1OriginalDefinition) || parent1OriginalDefinition.TypeKind == TypeKind.Submission && parent2.TypeKind == TypeKind.Submission)
1211(type, parameter, unused) => type.TypeKind == TypeKind.TypeParameter && (parameter is null || TypeSymbol.Equals(type, parameter, TypeCompareKind.ConsiderEverything2));
1222(type, typeParameterContainer, unused) => type.TypeKind == TypeKind.TypeParameter && (object)type.ContainingSymbol == (object)typeParameterContainer;
1231(type, parameters, unused) => type.TypeKind == TypeKind.TypeParameter && parameters.Contains((TypeParameterSymbol)type);
1240(type, _, _) => type.TypeKind == TypeKind.TypeParameter && type.ContainingSymbol is MethodSymbol;
1251private static readonly Func<TypeSymbol, object?, bool, bool> s_containsDynamicPredicate = (type, unused1, unused2) => type.TypeKind == TypeKind.Dynamic;
1289type.VisitType((TypeSymbol t, object? _, bool _) => t.TypeKind is TypeKind.Pointer or TypeKind.FunctionPointer, null) is object;
1317internal static TypeKind GetNonErrorTypeKindGuess(this TypeSymbol type)
1516case TypeKind.Struct:
1519case TypeKind.Array:
1520case TypeKind.Class:
1521case TypeKind.Delegate:
1522case TypeKind.Dynamic:
1523case TypeKind.Error:
1524case TypeKind.Interface:
1525case TypeKind.Pointer:
1526case TypeKind.FunctionPointer:
1529case TypeKind.Enum:
1532case TypeKind.TypeParameter:
1535case TypeKind.Submission:
1676return type.IsReferenceType && type.TypeKind != TypeKind.TypeParameter;
1684return type.IsValueType && type.TypeKind != TypeKind.TypeParameter;
2009if (taskType.TypeKind == TypeKind.Error)
Completion\Providers\ImportCompletionProvider\ExtensionMethodImportCompletionHelper.SymbolComputer_Constraints.cs (5)
31=> CheckConstraints(receiverTypeSymbol, typeParameter, TypeKind.Interface, static type => type.GetAllInterfacesIncludingThis());
34=> CheckConstraints(receiverTypeSymbol, typeParameter, TypeKind.Class, static type => type.GetBaseTypesAndThis());
38TypeKind typeKind,
68TypeKind constraintTypeKind,
105ITypeSymbol type, TypeKind typeKind, Func<ITypeSymbol, IEnumerable<ITypeSymbol>> getInheritanceTypes)
src\Analyzers\Core\CodeFixes\GenerateParameterizedMember\AbstractGenerateConversionService.cs (2)
24protected abstract bool TryInitializeImplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
25protected abstract bool TryInitializeExplicitConversionState(SemanticDocument document, SyntaxNode expression, ISet<TypeKind> classInterfaceModuleStructTypes, CancellationToken cancellationToken, out SyntaxToken identifierToken, [NotNullWhen(true)] out IMethodSymbol? methodSymbol, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
Binding\Binder_Lookup.vb (35)
16Imports TypeKind = Microsoft.CodeAnalysis.TypeKind
580Case TypeKind.Class, TypeKind.Module, TypeKind.Structure, TypeKind.Delegate, TypeKind.Array, TypeKind.Enum
583Case TypeKind.Submission
586Case TypeKind.Interface
589Case TypeKind.TypeParameter
592Case TypeKind.Error
606Case TypeKind.Class, TypeKind.Structure, TypeKind.Delegate, TypeKind.Array, TypeKind.Enum
609Case TypeKind.Module
612Case TypeKind.Submission
615Case TypeKind.Interface
618Case TypeKind.TypeParameter
621Case TypeKind.Error
931Case TypeKind.Class, TypeKind.Module, TypeKind.Structure
936Case TypeKind.Interface
941Case TypeKind.TypeParameter
1092Case TypeKind.Class, TypeKind.Module, TypeKind.Structure
1104Case TypeKind.Interface
1116Case TypeKind.TypeParameter
1697Case TypeKind.Interface
1710Case TypeKind.TypeParameter
1964(container.TypeKind = TypeKind.Class OrElse container.TypeKind = TypeKind.Structure) AndAlso
Compilation\ClsComplianceChecker.vb (26)
186If symbol.TypeKind = TypeKind.Delegate Then
340ElseIf symbol.TypeKind = TypeKind.Enum Then
439If type.TypeKind = TypeKind.Delegate AndAlso type.IsImplicitlyDeclared AndAlso TryCast(type, NamedTypeSymbol)?.AssociatedSymbol Is symbol Then
591Case TypeKind.Array
593Case TypeKind.Error, TypeKind.TypeParameter
595Case TypeKind.Class, TypeKind.Structure, TypeKind.Interface, TypeKind.Delegate, TypeKind.Enum, TypeKind.Submission, TypeKind.Module
617Case TypeKind.Array
619Case TypeKind.Error, TypeKind.TypeParameter
621Case TypeKind.Class, TypeKind.Structure, TypeKind.Interface, TypeKind.Delegate, TypeKind.Enum, TypeKind.Submission, TypeKind.Module
636If type.TypeKind = TypeKind.Error Then
892Dim typeKind As TypeKind = xType.TypeKind
897If typeKind = TypeKind.Array Then
Symbols\Source\SourceNamedTypeSymbol.vb (40)
18Imports TypeKind = Microsoft.CodeAnalysis.TypeKind
244If TypeKind = TypeKind.Delegate Then
272ElseIf TypeKind = TypeKind.Enum Then
1114Case TypeKind.TypeParameter
1118Case TypeKind.Interface, TypeKind.Enum, TypeKind.Delegate, TypeKind.Structure, TypeKind.Module, TypeKind.Array ' array can't really occur
1122Case TypeKind.Error, TypeKind.Unknown
1125Case TypeKind.Class
1185Case TypeKind.TypeParameter
1189Case TypeKind.Unknown
1192Case TypeKind.Interface, TypeKind.Error
1236Case TypeKind.TypeParameter
1240Case TypeKind.Unknown
1243Case TypeKind.Interface, TypeKind.Error
1379Case TypeKind.Submission
1385Case TypeKind.Class
1388Case TypeKind.Interface
1391Case TypeKind.Enum
1394Case TypeKind.Structure
1397Case TypeKind.Delegate
1400Case TypeKind.Module
1507Debug.Assert(Me.TypeKind <> TypeKind.Interface)
1509If TypeKind = TypeKind.Enum Then
1512ElseIf TypeKind = TypeKind.Delegate Then
1721TypeKind <> TypeKind.Class OrElse
2237Case TypeKind.Class
2264Case TypeKind.Interface
2284Case TypeKind.Module
2319Dim defaultAutoLayoutSize = If(Me.TypeKind = TypeKind.Structure, 1, 0)
2452If Me.TypeKind = TypeKind.Module Then
2502If Me.TypeKind = TypeKind.Structure Then
2545If Me.TypeKind = TypeKind.Module Then
2691If Me.TypeKind = TypeKind.Class AndAlso Not Me.IsGenericType Then
Symbols\TypeSymbolExtensions.vb (46)
118Return type.TypeKind = TypeKind.Enum
140Return type.TypeKind = TypeKind.Class
146Return type.TypeKind = TypeKind.Structure
152Return type.TypeKind = TypeKind.Module
233Return type.TypeKind = TypeKind.Delegate
410Case TypeKind.Array, TypeKind.Delegate, TypeKind.Enum, TypeKind.Structure, TypeKind.Module
412Case TypeKind.Interface, TypeKind.TypeParameter, TypeKind.Unknown
414Case TypeKind.Error, TypeKind.Class, TypeKind.Submission
635Case TypeKind.Array
637Case TypeKind.TypeParameter
735fieldType.TypeKind = TypeKind.Enum
746If type.TypeKind = TypeKind.TypeParameter Then
761Return (type.TypeKind = TypeKind.TypeParameter) AndAlso
774Return (type.TypeKind = TypeKind.TypeParameter) AndAlso
790Private ReadOnly s_isTypeParameterFunc As Func(Of TypeSymbol, Object, Boolean) = Function(type, arg) (type.TypeKind = TypeKind.TypeParameter)
830Case TypeKind.Class,
831TypeKind.Struct,
832TypeKind.Interface,
833TypeKind.Enum,
834TypeKind.Delegate
845Case TypeKind.Submission
855Case TypeKind.Dynamic,
856TypeKind.TypeParameter,
857TypeKind.Submission,
858TypeKind.Enum,
859TypeKind.Module
863Case TypeKind.Class,
864TypeKind.Struct,
865TypeKind.Interface,
866TypeKind.Delegate,
867TypeKind.Error
883Case TypeKind.Array
1060If type.TypeKind = TypeKind.Class Then
1066If typeArgument.TypeKind = TypeKind.Delegate Then
1082If type.TypeKind = TypeKind.Delegate Then
1096If type.TypeKind = TypeKind.Delegate Then
1131If type.TypeKind = TypeKind.TypeParameter Then
1139If type.TypeKind = TypeKind.TypeParameter Then
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (20)
62new SymbolKindOrTypeKind(TypeKind.Class),
63new SymbolKindOrTypeKind(TypeKind.Struct),
64new SymbolKindOrTypeKind(TypeKind.Interface),
65new SymbolKindOrTypeKind(TypeKind.Delegate),
66new SymbolKindOrTypeKind(TypeKind.Enum),
67new SymbolKindOrTypeKind(TypeKind.Module),
68new SymbolKindOrTypeKind(TypeKind.Pointer),
75new SymbolKindOrTypeKind(TypeKind.TypeParameter),
293foreach (var typeKindElement in symbolKindListElement.Elements(nameof(TypeKind)))
344public SymbolKindOrTypeKind(TypeKind typeKind)
355public TypeKind? TypeKind => (_category == SymbolCategory.Type) ? (TypeKind)_kind : null;
362SymbolCategory.Type => symbol is ITypeSymbol type && type.TypeKind == (TypeKind)_kind,
371SymbolCategory.Type => new XElement(nameof(TypeKind), GetTypeKindString((TypeKind)_kind)),
376private static string GetTypeKindString(TypeKind typeKind)
383CodeAnalysis.TypeKind.Structure => nameof(CodeAnalysis.TypeKind.Struct),
433=> new((TypeKind)Enum.Parse(typeof(TypeKind), typeKindElement.Value));
441public static implicit operator SymbolKindOrTypeKind(TypeKind symbolKind)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (20)
62new SymbolKindOrTypeKind(TypeKind.Class),
63new SymbolKindOrTypeKind(TypeKind.Struct),
64new SymbolKindOrTypeKind(TypeKind.Interface),
65new SymbolKindOrTypeKind(TypeKind.Delegate),
66new SymbolKindOrTypeKind(TypeKind.Enum),
67new SymbolKindOrTypeKind(TypeKind.Module),
68new SymbolKindOrTypeKind(TypeKind.Pointer),
75new SymbolKindOrTypeKind(TypeKind.TypeParameter),
293foreach (var typeKindElement in symbolKindListElement.Elements(nameof(TypeKind)))
344public SymbolKindOrTypeKind(TypeKind typeKind)
355public TypeKind? TypeKind => (_category == SymbolCategory.Type) ? (TypeKind)_kind : null;
362SymbolCategory.Type => symbol is ITypeSymbol type && type.TypeKind == (TypeKind)_kind,
371SymbolCategory.Type => new XElement(nameof(TypeKind), GetTypeKindString((TypeKind)_kind)),
376private static string GetTypeKindString(TypeKind typeKind)
383CodeAnalysis.TypeKind.Structure => nameof(CodeAnalysis.TypeKind.Struct),
433=> new((TypeKind)Enum.Parse(typeof(TypeKind), typeKindElement.Value));
441public static implicit operator SymbolKindOrTypeKind(TypeKind symbolKind)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\SymbolSpecification.cs (20)
62new SymbolKindOrTypeKind(TypeKind.Class),
63new SymbolKindOrTypeKind(TypeKind.Struct),
64new SymbolKindOrTypeKind(TypeKind.Interface),
65new SymbolKindOrTypeKind(TypeKind.Delegate),
66new SymbolKindOrTypeKind(TypeKind.Enum),
67new SymbolKindOrTypeKind(TypeKind.Module),
68new SymbolKindOrTypeKind(TypeKind.Pointer),
75new SymbolKindOrTypeKind(TypeKind.TypeParameter),
293foreach (var typeKindElement in symbolKindListElement.Elements(nameof(TypeKind)))
344public SymbolKindOrTypeKind(TypeKind typeKind)
355public TypeKind? TypeKind => (_category == SymbolCategory.Type) ? (TypeKind)_kind : null;
362SymbolCategory.Type => symbol is ITypeSymbol type && type.TypeKind == (TypeKind)_kind,
371SymbolCategory.Type => new XElement(nameof(TypeKind), GetTypeKindString((TypeKind)_kind)),
376private static string GetTypeKindString(TypeKind typeKind)
383CodeAnalysis.TypeKind.Structure => nameof(CodeAnalysis.TypeKind.Struct),
433=> new((TypeKind)Enum.Parse(typeof(TypeKind), typeKindElement.Value));
441public static implicit operator SymbolKindOrTypeKind(TypeKind symbolKind)