org.jetbrains.kotlin.analysis.api.symbols¶
Types¶
KaAdditionalKDocResolutionProvider¶
interface KaAdditionalKDocResolutionProvider
An extension point to provide additional symbols for a KDoc reference. KDoc link resolution will use symbols returned by this extension point only if the real resolution was unsuccessful.
KaAnonymousFunctionSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaAnonymousFunctionSymbol : KaFunctionSymbol
KaAnonymousObjectSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaAnonymousObjectSymbol : KaClassSymbol
KaAnonymousObjectSymbol represents anonymous object declarations.
KaBackingFieldSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaBackingFieldSymbol : KaVariableSymbol
KaBackingFieldSymbol represents the backing field of a property.
KaCallableImplementationState¶
sealed interface KaCallableImplementationState
Describes the implementation state of a KaCallableSymbol in the context of a specific KaClassSymbol.
KaCallableSymbol¶
sealed class KaCallableSymbol : KaDeclarationSymbol, KaContextReceiversOwner
KaCallableSymbol represents callable declarations, such as functions and variables.
KaClassifierSymbol¶
sealed class KaClassifierSymbol : KaDeclarationSymbol
KaClassifierSymbol represents a type declaration, including classes, objects, interfaces, type aliases, and type parameters.
KaClassInitializerSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaClassInitializerSymbol : KaDeclarationSymbol
KaClassInitializerSymbol represents an anonymous initializer declaration in a class body.
KaClassKind¶
enum class KaClassKind : Enum<KaClassKind>
The kind of class represented by a KaClassSymbol.
KaClassLikeSymbol¶
sealed class KaClassLikeSymbol : KaClassifierSymbol
KaClassLikeSymbol represents a class, object, interface, or type alias declaration.
KaClassSymbol¶
sealed class KaClassSymbol : KaClassLikeSymbol, KaDeclarationContainerSymbol
KaClassSymbol represents a class, object, or interface declaration.
KaConstructorSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaConstructorSymbol : KaFunctionSymbol
KaConstructorSymbol represents a class constructor declaration.
KaContextParameterSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaContextParameterSymbol : KaParameterSymbol
KaContextParameterSymbol represents a context parameter of a KaNamedFunctionSymbol, KaAnonymousFunctionSymbol, or KaKotlinPropertySymbol.
KaDebugRenderer¶
class KaDebugRenderer(
val renderExtra: Boolean = false,
val renderTypeByProperties: Boolean = false,
val renderExpandedTypes: Boolean = false,
val renderIsPublicApi: Boolean = false
)
KaDeclarationSymbol¶
sealed interface KaDeclarationSymbol : KaSymbol, KaAnnotatedSymbol
Represents a source-representable declaration such as a class, function, or property.
KaDeprecation¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface KaDeprecation
Represents the deprecation status of a symbol.
KaDeprecationLevel¶
class KaDeprecationLevel
Deprecation severity levels, corresponding to DeprecationLevel in the Kotlin standard library.
KaDestructuringDeclarationSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaDestructuringDeclarationSymbol : KaDeclarationSymbol
A KaSymbol created from a destructuring declaration (possibly from a lambda parameter).
KaEnumEntrySymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaEnumEntrySymbol : KaVariableSymbol
KaEnumEntrySymbol represents an enum entry declaration.
KaFileSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaFileSymbol : KaAnnotatedSymbol
KaFileSymbol represents a KtFile.
KaFunctionSymbol¶
sealed class KaFunctionSymbol : KaCallableSymbol
KaFunctionSymbol represents a function-like declaration, including named and anonymous functions, constructors, and property accessors.
KaJavaFieldSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaJavaFieldSymbol : KaVariableSymbol
KaJavaFieldSymbol represents a Java field declaration.
KaKotlinPropertySymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaKotlinPropertySymbol : KaPropertySymbol
KaKotlinPropertySymbol represents a Kotlin property symbol, in contrast to KaSyntheticJavaPropertySymbol.
KaLocalVariableSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaLocalVariableSymbol : KaVariableSymbol
KaLocalVariableSymbol represents a local variable.
KaNamedClassSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaNamedClassSymbol : KaClassSymbol, KaNamedSymbol, KaContextReceiversOwner
KaNamedClassSymbol represents a named class, object, or interface declaration. The symbol covers most class declarations except for anonymous objects, which are represented by KaAnonymousObjectSymbol.
KaNamedFunctionSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaNamedFunctionSymbol : KaFunctionSymbol, KaNamedSymbol
KaNamedFunctionSymbol represents a named function declaration, such as a top-level function, a class method, or a named local function.
KaPackageSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaPackageSymbol : KaSymbol
KaPackageSymbol represents a package as a symbol.
KaParameterSymbol¶
sealed class KaParameterSymbol : KaVariableSymbol
KaParameterSymbol represents a value parameter, context parameter, or receiver parameter.
KaPropertyAccessorSymbol¶
sealed class KaPropertyAccessorSymbol : KaFunctionSymbol
KaPropertyAccessorSymbol represents a getter or setter declaration of a property.
KaPropertyGetterSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaPropertyGetterSymbol : KaPropertyAccessorSymbol
KaPropertyGetterSymbol represents a property getter.
KaPropertySetterSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaPropertySetterSymbol : KaPropertyAccessorSymbol
KaPropertyGetterSymbol represents a property setter.
KaPropertySymbol¶
sealed class KaPropertySymbol : KaVariableSymbol
KaPropertySymbol represents a property declaration.
KaReceiverParameterSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaReceiverParameterSymbol : KaParameterSymbol
A symbol for a receiver parameter of an extension function or property.
KaReturnValueStatus¶
sealed class KaReturnValueStatus
The return value status of the function (should it be used, or can it be ignored).
KaSamConstructorSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaSamConstructorSymbol : KaFunctionSymbol, KaNamedSymbol
KaSamConstructorSymbol represents constructors used to build instances of SAM interfaces.
KaScriptSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaScriptSymbol : KaDeclarationSymbol, KaNamedSymbol, KaDeclarationContainerSymbol
KaScriptSymbol represents a Kotlin script.
KaSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
interface KaSymbol : KaLifetimeOwner
KaSymbols are a core concept in the Analysis API, representing declarations visible to Kotlin. Symbols represent not only declarations in source files, but also declarations from libraries, and those generated by compiler plugins and the compiler itself.
KaSymbolLocation¶
enum class KaSymbolLocation : Enum<KaSymbolLocation>
Describes the location where a KaSymbol is declared in code.
KaSymbolModality¶
enum class KaSymbolModality : Enum<KaSymbolModality>
A symbol's modality defines its ability to be inherited.
KaSymbolOrigin¶
enum class KaSymbolOrigin : Enum<KaSymbolOrigin>
KaSymbolOrigin describes the kind of data source (sources, libraries, etc.) or generation (SAM constructors, compiler plugins, etc.) the symbol originates from.
KaSymbolProvider¶
@SubclassOptInRequired(markerClass = [KaSessionComponentImplementationDetail::class])
interface KaSymbolProvider : KaSessionComponent
KaSymbolProvider provides KaSymbols for given PSI elements.
KaSymbolVisibility¶
enum class KaSymbolVisibility : Enum<KaSymbolVisibility>
The visibility of a KaSymbol. As symbols can represent both Kotlin and Java declarations, KaSymbolVisibility covers both visibility definitions.
KaSyntheticJavaPropertySymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaSyntheticJavaPropertySymbol : KaPropertySymbol
KaSyntheticJavaPropertySymbol represents a synthetic property generated by the compiler for a Java field associated with a getter or setter. This allows Java fields to be accessed like Kotlin properties.
KaTypeAliasSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaTypeAliasSymbol : KaClassLikeSymbol, KaNamedSymbol
KaTypeAliasSymbol represents a type alias declaration.
KaTypeParameterSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaTypeParameterSymbol : KaClassifierSymbol, KaNamedSymbol
KaTypeParameterSymbol represents a type parameter of a class, function, property, or type alias.
KaValueParameterSymbol¶
@SubclassOptInRequired(markerClass = [KaImplementationDetail::class])
abstract class KaValueParameterSymbol : KaParameterSymbol
KaValueParameterSymbol represents a value parameter of a function, constructor, or property setter.
KaVariableSymbol¶
sealed class KaVariableSymbol : KaCallableSymbol, KaNamedSymbol
KaVariableSymbol represents a variable-like declaration, including properties, local variables, and value parameters.
Properties¶
classSymbol¶
context(session: KaSession)
val KtClassOrObject.classSymbol: KaClassSymbol?
A KaClassSymbol for the given KtClassOrObject, or null for KtEnumEntry declarations.
namedClassSymbol¶
context(session: KaSession)
val KtClassOrObject.namedClassSymbol: KaNamedClassSymbol?
A KaNamedClassSymbol for the given named KtClassOrObject, or null for KtEnumEntry declarations and object literals.
rootPackageSymbol¶
context(session: KaSession)
val rootPackageSymbol: KaPackageSymbol
A KaPackageSymbol for the root package, which is the special package with an empty fully-qualified name.
symbol¶
context(session: KaSession)
val KtBackingField.symbol: KaBackingFieldSymbol
A KaBackingFieldSymbol for the given KtBackingField.
context(session: KaSession)
val KtClassInitializer.symbol: KaClassInitializerSymbol
A KaClassInitializerSymbol for the given KtClassInitializer.
context(session: KaSession)
val KtConstructor<*>.symbol: KaConstructorSymbol
A KaConstructorSymbol for the given KtConstructor.
context(session: KaSession)
val KtContextReceiver.symbol: KaContextParameterSymbol
Represents KtContextReceiver as a KaContextParameterSymbol.
context(session: KaSession)
val KtDeclaration.symbol: KaDeclarationSymbol
A KaDeclarationSymbol for the given KtDeclaration.
context(session: KaSession)
val KtDestructuringDeclaration.symbol: KaDestructuringDeclarationSymbol
A KaDestructuringDeclarationSymbol for the given KtDestructuringDeclaration.
context(session: KaSession)
val KtDestructuringDeclarationEntry.symbol: KaVariableSymbol
A KaVariableSymbol that corresponds to the local variable introduced by the given KtDestructuringDeclarationEntry.
context(session: KaSession)
val KtEnumEntry.symbol: KaEnumEntrySymbol
A KaEnumEntrySymbol for the given KtEnumEntry.
context(session: KaSession)
val KtFile.symbol: KaFileSymbol
A KaFileSymbol for a KtFile.
context(session: KaSession)
val KtFunctionLiteral.symbol: KaAnonymousFunctionSymbol
A KaAnonymousFunctionSymbol for the given KtFunctionLiteral.
context(session: KaSession)
val KtNamedFunction.symbol: KaFunctionSymbol
A KaFunctionSymbol for the given KtNamedFunction.
context(session: KaSession)
val KtObjectDeclaration.symbol: KaClassSymbol
A KaClassSymbol for the given KtObjectDeclaration.
context(session: KaSession)
val KtObjectLiteralExpression.symbol: KaAnonymousObjectSymbol
A KaAnonymousObjectSymbol for the given KtObjectLiteralExpression.
context(session: KaSession)
val KtParameter.symbol: KaVariableSymbol
A KaVariableSymbol for the given KtParameter.
context(session: KaSession)
val KtProperty.symbol: KaVariableSymbol
A KaVariableSymbol for the given KtProperty.
context(session: KaSession)
val KtPropertyAccessor.symbol: KaPropertyAccessorSymbol
A KaPropertyAccessorSymbol for the given KtPropertyAccessor.
context(session: KaSession)
val KtScript.symbol: KaScriptSymbol
A KaScriptSymbol for a KtScript.
context(session: KaSession)
val KtTypeAlias.symbol: KaTypeAliasSymbol
A KaTypeAliasSymbol for the given KtTypeAlias.
context(session: KaSession)
val KtTypeParameter.symbol: KaTypeParameterSymbol
A KaTypeParameterSymbol for the given KtTypeParameter.
Functions¶
findClass¶
context(session: KaSession)
fun findClass(classId: ClassId): KaNamedClassSymbol?
Returns a KaNamedClassSymbol for the specified ClassId, or null if such a symbol cannot be found.
findClassLike¶
context(session: KaSession)
fun findClassLike(classId: ClassId): KaClassLikeSymbol?
Returns a KaClassLikeSymbol for the specified ClassId, or null if such a symbol cannot be found.
findPackage¶
context(session: KaSession)
fun findPackage(fqName: FqName): KaPackageSymbol?
Returns a KaPackageSymbol corresponding to the given fqName if that package exists and is visible from the current use site, or null otherwise.
findTopLevelCallables¶
context(session: KaSession)
fun findTopLevelCallables(packageFqName: FqName, name: Name): Sequence<KaCallableSymbol>
Finds top-level functions and properties called name in the package called packageFqName. Returns only symbols that are visible from the current use-site module.
findTypeAlias¶
context(session: KaSession)
fun findTypeAlias(classId: ClassId): KaTypeAliasSymbol?
Returns a KaTypeAliasSymbol for the specified ClassId, or null if such a symbol cannot be found.