TypeManager

open class TypeManager

Functions

Link copied to clipboard
open fun addTypeParameter(recordDeclaration: RecordDeclaration, typeParameters: List<ParameterizedType>)
Adds a List of ParameterizedType to recordToTypeParameters
open fun addTypeParameter(templateDeclaration: TemplateDeclaration, typeParameter: ParameterizedType)
Adds ParameterizedType to the templateToTypeParameters to be able to resolve this type when it is used
Link copied to clipboard
open fun cacheType(node: HasType, type: Type)
Link copied to clipboard
open fun checkArrayAndPointer(first: Type, second: Type): Boolean
Link copied to clipboard
open fun cleanup()
Link copied to clipboard
Link copied to clipboard
open fun createOrGetTypeParameter(templateDeclaration: TemplateDeclaration, typeName: String, language: Language<out LanguageFrontend>): ParameterizedType
Check if a ParameterizedType with name typeName is already registered.
Link copied to clipboard
@NotNull
open fun createTypeAlias(@NotNull frontend: @NotNull LanguageFrontend, rawCode: String, target: Type, aliasString: String): @NotNull Declaration
Creates a typedef / type alias in the form of a TypedefDeclaration to the scope manager and returns it.
Link copied to clipboard
@NotNull
open fun getAllParameterizedType(templateDeclaration: TemplateDeclaration): @NotNull List<ParameterizedType>
Link copied to clipboard
@NotNull
open fun getCommonType(@NotNull types: @NotNull Collection<Type>, provider: ScopeProvider): @NotNull Optional<Type>
This function is a relict from the old ages.
Link copied to clipboard
@Nullable
open fun getTypeParameter(recordDeclaration: RecordDeclaration, name: String): @Nullable ParameterizedType

@Nullable
open fun getTypeParameter(templateDeclaration: TemplateDeclaration, name: String): @Nullable ParameterizedType
Searches templateToTypeParameters for ParameterizedTypes that were defined in a template matching the provided name
Link copied to clipboard
open fun isPrimitive(type: Type, language: Language<out LanguageFrontend>): Boolean
Link copied to clipboard
open fun isSupertypeOf(superType: Type, subType: Type, provider: MetadataProvider): Boolean
Link copied to clipboard
Link copied to clipboard
open fun isUnknown(type: Type): Boolean
Link copied to clipboard
open fun <T : Type?> registerType(t: T): T
Link copied to clipboard
open fun reset()
Link copied to clipboard
open fun resolvePossibleTypedef(alias: Type, scopeManager: ScopeManager): Type
Searches for ParameterizedType if the scope is a TemplateScope.
Link copied to clipboard
open fun setTypeSystemActive(active: Boolean)
Link copied to clipboard
open fun stopPropagation(type: Type, newType: Type): Boolean
Link copied to clipboard
open fun typeExists(name: String): Boolean

Properties

Link copied to clipboard
Link copied to clipboard
@NotNull
@get:NotNull
open val instance: @NotNull TypeManager
Link copied to clipboard
Link copied to clipboard
@NotNull
@get:NotNull
val typeCache: @NotNull Map<HasType, List<Type>>
Link copied to clipboard
@NotNull
@get:NotNull
val typeState: @NotNull Map<Type, List<Type>>