KaCallableSymbol
A base class for symbols that represent callable declarations, such as functions and properties.
Hierarchy
A sealed class. 
 Inherits from KaDeclarationSymbol.
Notable inheritors: KaFunctionSymbol, KaVariableSymbol.
Members
val callableId: CallableId?The fully-qualified name of a declaration, or
nullif the declaration is a local one.val returnType: KaTypeThe declaration's return type. For properties, the type of the property.
val isExtension: Booleantrueif the declaration is an extension function or an extension property.val receiverParameter: KaReceiverParameterSymbol?The receiver parameter, or
nullif the declaration is not an extension.
Type utilities
val KaCallableSymbol.receiverType: KaType?The receiver parameter type, or
nullif the declaration is not an extension.
Relation utilities
val KaCallableSymbol.directlyOverriddenSymbols: Sequence<KaCallableSymbol>A sequence of declarations directly overridden by the given declaration.
E.g., if
A.foooverridesB.foo, andB.foooverridesC.foo, onlyB.foowill be returned as a directly overridden declaration forC.foo.val KaCallableSymbol.allOverriddenSymbols: Sequence<KaCallableSymbol>A sequence of declarations overridden by the given declaration, both directly and indirectly.
E.g., if
A.foooverridesB.foo, andB.foooverridesC.foo, bothA.fooandB.foowill be returned as overridden declarations forC.foo.val KaCallableSymbol.fakeOverrideOriginal: KaCallableSymbolThe original declared symbol for a substitution or intersection override.
Fake overrides are unwrapped until the original declared symbol is found. For callables that are not fake overrides, returns the given callable itself.
val KaCallableSymbol.intersectionOverriddenSymbols: List<KaCallableSymbol>- interface Foo<T> { fun foo(value: T) } interface Bar { fun foo(value: String) } interface Both : Foo<String>, Bar
The
Bothinterface contains an automatically generated intersection override declarationfoo().