[AA] implement isExpect/isActual for callable symbols

^KT-54846 Fixed
This commit is contained in:
aleksandrina-streltsova
2023-07-18 11:52:28 +03:00
committed by teamcity
parent 52a95cb75f
commit fe4ca30c55
14 changed files with 782 additions and 9 deletions
@@ -41,6 +41,12 @@ internal class KtFe10DescConstructorSymbol(
override val returnType: KtType override val returnType: KtType
get() = withValidityAssertion { descriptor.returnType.toKtType(analysisContext) } get() = withValidityAssertion { descriptor.returnType.toKtType(analysisContext) }
override val isActual: Boolean
get() = withValidityAssertion { descriptor.isActual }
override val isExpect: Boolean
get() = withValidityAssertion { descriptor.isExpect }
override val typeParameters: List<KtTypeParameterSymbol> override val typeParameters: List<KtTypeParameterSymbol>
get() = withValidityAssertion { get() = withValidityAssertion {
descriptor.typeParameters.mapNotNull { descriptor.typeParameters.mapNotNull {
@@ -75,6 +75,12 @@ internal class KtFe10DescFunctionSymbol private constructor(
override val isBuiltinFunctionInvoke: Boolean override val isBuiltinFunctionInvoke: Boolean
get() = withValidityAssertion { callableIdIfNonLocal in kotlinFunctionInvokeCallableIds } get() = withValidityAssertion { callableIdIfNonLocal in kotlinFunctionInvokeCallableIds }
override val isActual: Boolean
get() = withValidityAssertion { descriptor.isActual }
override val isExpect: Boolean
get() = withValidityAssertion { descriptor.isExpect }
override val valueParameters: List<KtValueParameterSymbol> override val valueParameters: List<KtValueParameterSymbol>
get() = withValidityAssertion { descriptor.valueParameters.map { KtFe10DescValueParameterSymbol(it, analysisContext) } } get() = withValidityAssertion { descriptor.valueParameters.map { KtFe10DescValueParameterSymbol(it, analysisContext) } }
@@ -60,6 +60,12 @@ internal class KtFe10DescKotlinPropertySymbol(
override val isOverride: Boolean override val isOverride: Boolean
get() = withValidityAssertion { descriptor.isExplicitOverride } get() = withValidityAssertion { descriptor.isExplicitOverride }
override val isActual: Boolean
get() = withValidityAssertion { descriptor.isActual }
override val isExpect: Boolean
get() = withValidityAssertion { descriptor.isExpect }
override val hasGetter: Boolean override val hasGetter: Boolean
get() = withValidityAssertion { true } get() = withValidityAssertion { true }
@@ -30,6 +30,8 @@ import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.psi.KtConstructor import org.jetbrains.kotlin.psi.KtConstructor
import org.jetbrains.kotlin.psi.KtPrimaryConstructor import org.jetbrains.kotlin.psi.KtPrimaryConstructor
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
internal class KtFe10PsiConstructorSymbol( internal class KtFe10PsiConstructorSymbol(
@@ -61,6 +63,12 @@ internal class KtFe10PsiConstructorSymbol(
override val visibility: Visibility override val visibility: Visibility
get() = withValidityAssertion { psi.ktVisibility ?: descriptor?.ktVisibility ?: Visibilities.Public } get() = withValidityAssertion { psi.ktVisibility ?: descriptor?.ktVisibility ?: Visibilities.Public }
override val isActual: Boolean
get() = withValidityAssertion { descriptor?.isActual ?: psi.hasActualModifier() }
override val isExpect: Boolean
get() = withValidityAssertion { descriptor?.isExpect ?: psi.hasExpectModifier() }
override val typeParameters: List<KtTypeParameterSymbol> override val typeParameters: List<KtTypeParameterSymbol>
get() = withValidityAssertion { psi.typeParameters.map { KtFe10PsiTypeParameterSymbol(it, analysisContext) } } get() = withValidityAssertion { psi.typeParameters.map { KtFe10PsiTypeParameterSymbol(it, analysisContext) } }
@@ -10,13 +10,12 @@ import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
import org.jetbrains.kotlin.analysis.api.contracts.description.KtContractEffectDeclaration import org.jetbrains.kotlin.analysis.api.contracts.description.KtContractEffectDeclaration
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.calculateHashCode
import org.jetbrains.kotlin.analysis.api.descriptors.contracts.effectDeclarationToAnalysisApi import org.jetbrains.kotlin.analysis.api.descriptors.contracts.effectDeclarationToAnalysisApi
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.calculateHashCode
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.* import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.*
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.isEqualTo import org.jetbrains.kotlin.analysis.api.descriptors.symbols.isEqualTo
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.* import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.*
import org.jetbrains.kotlin.analysis.api.descriptors.utils.ValidityAwareCachedValue
import org.jetbrains.kotlin.analysis.api.descriptors.utils.cached import org.jetbrains.kotlin.analysis.api.descriptors.utils.cached
import org.jetbrains.kotlin.analysis.api.impl.base.util.kotlinFunctionInvokeCallableIds import org.jetbrains.kotlin.analysis.api.impl.base.util.kotlinFunctionInvokeCallableIds
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
@@ -29,7 +28,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
import org.jetbrains.kotlin.analysis.api.types.KtType import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.contracts.description.ContractProviderKey import org.jetbrains.kotlin.contracts.description.ContractProviderKey
import org.jetbrains.kotlin.contracts.description.EffectDeclaration
import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibilities
@@ -38,9 +36,10 @@ import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier
import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import kotlin.reflect.KProperty
internal class KtFe10PsiFunctionSymbol( internal class KtFe10PsiFunctionSymbol(
override val psi: KtNamedFunction, override val psi: KtNamedFunction,
@@ -81,6 +80,12 @@ internal class KtFe10PsiFunctionSymbol(
override val isBuiltinFunctionInvoke: Boolean override val isBuiltinFunctionInvoke: Boolean
get() = withValidityAssertion { callableIdIfNonLocal in kotlinFunctionInvokeCallableIds } get() = withValidityAssertion { callableIdIfNonLocal in kotlinFunctionInvokeCallableIds }
override val isActual: Boolean
get() = withValidityAssertion { descriptor?.isActual ?: psi.hasActualModifier() }
override val isExpect: Boolean
get() = withValidityAssertion { descriptor?.isExpect ?: psi.hasExpectModifier() }
override val valueParameters: List<KtValueParameterSymbol> override val valueParameters: List<KtValueParameterSymbol>
get() = withValidityAssertion { psi.valueParameters.map { KtFe10PsiValueParameterSymbol(it, analysisContext) } } get() = withValidityAssertion { psi.valueParameters.map { KtFe10PsiValueParameterSymbol(it, analysisContext) } }
@@ -30,6 +30,8 @@ import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtProperty import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier
import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
@@ -96,6 +98,12 @@ internal class KtFe10PsiKotlinPropertySymbol(
override val isStatic: Boolean override val isStatic: Boolean
get() = withValidityAssertion { false } get() = withValidityAssertion { false }
override val isActual: Boolean
get() = withValidityAssertion { descriptor?.isActual ?: psi.hasActualModifier() }
override val isExpect: Boolean
get() = withValidityAssertion { descriptor?.isExpect ?: psi.hasExpectModifier() }
override val initializer: KtInitializerValue? override val initializer: KtInitializerValue?
get() = withValidityAssertion { createKtInitializerValue(psi, descriptor, analysisContext) } get() = withValidityAssertion { createKtInitializerValue(psi, descriptor, analysisContext) }
@@ -25,6 +25,8 @@ import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.containingClassLookupTag import org.jetbrains.kotlin.fir.containingClassLookupTag
import org.jetbrains.kotlin.fir.declarations.utils.hasStableParameterNames import org.jetbrains.kotlin.fir.declarations.utils.hasStableParameterNames
import org.jetbrains.kotlin.fir.declarations.utils.isActual
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.declarations.utils.visibility
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
@@ -58,6 +60,8 @@ internal class KtFirConstructorSymbol(
get() = withValidityAssertion { firSymbol.containingClassLookupTag()?.classId?.takeUnless { it.isLocal } } get() = withValidityAssertion { firSymbol.containingClassLookupTag()?.classId?.takeUnless { it.isLocal } }
override val isPrimary: Boolean get() = withValidityAssertion { firSymbol.isPrimary } override val isPrimary: Boolean get() = withValidityAssertion { firSymbol.isPrimary }
override val isActual: Boolean get() = withValidityAssertion { firSymbol.isActual }
override val isExpect: Boolean get() = withValidityAssertion { firSymbol.isExpect }
override val typeParameters by cached { firSymbol.createKtTypeParameters(builder) } override val typeParameters by cached { firSymbol.createKtTypeParameters(builder) }
@@ -84,6 +84,9 @@ internal class KtFirFunctionSymbol(
override val isExternal: Boolean get() = withValidityAssertion { firSymbol.isExternal } override val isExternal: Boolean get() = withValidityAssertion { firSymbol.isExternal }
override val isInline: Boolean get() = withValidityAssertion { firSymbol.isInline } override val isInline: Boolean get() = withValidityAssertion { firSymbol.isInline }
override val isExtension: Boolean get() = withValidityAssertion { firSymbol.isExtension } override val isExtension: Boolean get() = withValidityAssertion { firSymbol.isExtension }
override val isActual: Boolean get() = withValidityAssertion { firSymbol.isActual }
override val isExpect: Boolean get() = withValidityAssertion { firSymbol.isExpect }
override val callableIdIfNonLocal: CallableId? get() = withValidityAssertion { firSymbol.getCallableIdIfNonLocal() } override val callableIdIfNonLocal: CallableId? get() = withValidityAssertion { firSymbol.getCallableIdIfNonLocal() }
override val symbolKind: KtSymbolKind override val symbolKind: KtSymbolKind
@@ -117,6 +117,8 @@ internal class KtFirKotlinPropertySymbol(
override val isOverride: Boolean get() = withValidityAssertion { firSymbol.isOverride } override val isOverride: Boolean get() = withValidityAssertion { firSymbol.isOverride }
override val isConst: Boolean get() = withValidityAssertion { firSymbol.isConst } override val isConst: Boolean get() = withValidityAssertion { firSymbol.isConst }
override val isStatic: Boolean get() = withValidityAssertion { firSymbol.isStatic } override val isStatic: Boolean get() = withValidityAssertion { firSymbol.isStatic }
override val isActual: Boolean get() = withValidityAssertion { firSymbol.isActual }
override val isExpect: Boolean get() = withValidityAssertion { firSymbol.isExpect }
override val hasGetter: Boolean get() = withValidityAssertion { firSymbol.getterSymbol != null } override val hasGetter: Boolean get() = withValidityAssertion { firSymbol.getterSymbol != null }
override val hasSetter: Boolean get() = withValidityAssertion { firSymbol.setterSymbol != null } override val hasSetter: Boolean get() = withValidityAssertion { firSymbol.setterSymbol != null }
@@ -49,6 +49,7 @@ public abstract class KtSamConstructorSymbol : KtFunctionLikeSymbol(), KtNamedSy
public abstract class KtFunctionSymbol : KtFunctionLikeSymbol(), public abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
KtNamedSymbol, KtNamedSymbol,
KtPossibleMemberSymbol, KtPossibleMemberSymbol,
KtPossibleMultiplatformSymbol,
KtSymbolWithModality, KtSymbolWithModality,
KtSymbolWithVisibility { KtSymbolWithVisibility {
@@ -72,6 +73,7 @@ public abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
public abstract class KtConstructorSymbol : KtFunctionLikeSymbol(), public abstract class KtConstructorSymbol : KtFunctionLikeSymbol(),
KtPossibleMemberSymbol, KtPossibleMemberSymbol,
KtPossibleMultiplatformSymbol,
KtSymbolWithVisibility { KtSymbolWithVisibility {
public abstract val isPrimary: Boolean public abstract val isPrimary: Boolean
@@ -138,7 +138,7 @@ public sealed class KtPropertySymbol : KtVariableSymbol(),
abstract override fun createPointer(): KtSymbolPointer<KtPropertySymbol> abstract override fun createPointer(): KtSymbolPointer<KtPropertySymbol>
} }
public abstract class KtKotlinPropertySymbol : KtPropertySymbol() { public abstract class KtKotlinPropertySymbol : KtPropertySymbol(), KtPossibleMultiplatformSymbol {
public abstract val isLateInit: Boolean public abstract val isLateInit: Boolean
public abstract val isConst: Boolean public abstract val isConst: Boolean
@@ -5,22 +5,38 @@
package sample package sample
expect object A expect object A
expect class B { expect class B(s: String) {
constructor(n: Int)
class Nested class Nested
fun bar()
val n: Int
} }
expect class C { expect class C {
class Nested class Nested
} }
expect fun baz()
expect var m: Int
// MODULE: androidMain(commonMain) // MODULE: androidMain(commonMain)
// FILE: JvmAndroid.kt // FILE: JvmAndroid.kt
package sample package sample
actual object A actual object A
actual class B { actual class B actual constructor(s: String) {
actual constructor(n: Int) : this("")
actual class Nested actual class Nested
actual fun bar() {}
actual val n: Int = 0
} }
actual typealias C = D actual typealias C = D
@@ -28,3 +44,7 @@ actual typealias C = D
class D { class D {
class Nested class Nested
} }
actual fun baz() {}
actual var m: Int = 0
@@ -2,25 +2,49 @@
object A object A
class B class B(s: kotlin.String)
constructor(s: kotlin.String)
constructor(n: kotlin.Int)
class Nested class Nested
fun bar()
val n: kotlin.Int
class C class C
class Nested class Nested
fun baz()
var m: kotlin.Int
// FILE: JvmAndroid.kt // FILE: JvmAndroid.kt
object A object A
class B class B(s: kotlin.String)
constructor(s: kotlin.String)
constructor(n: kotlin.Int)
class Nested class Nested
fun bar()
val n: kotlin.Int
typealias C = sample.D typealias C = sample.D
class D class D
class Nested class Nested
fun baz()
var m: kotlin.Int
@@ -52,6 +52,90 @@ KtNamedClassOrObjectSymbol:
typeParameters: [] typeParameters: []
visibility: Public visibility: Public
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: sample/B
contextReceivers: []
hasStableParameterNames: true
isActual: false
isExpect: true
isExtension: false
isPrimary: true
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: sample/B
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: s
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/String
symbolKind: LOCAL
typeParameters: []
]
visibility: Public
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: sample/B
contextReceivers: []
hasStableParameterNames: true
isActual: false
isExpect: true
isExtension: false
isPrimary: false
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: sample/B
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: n
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
]
visibility: Public
KtNamedClassOrObjectSymbol: KtNamedClassOrObjectSymbol:
annotationsList: [] annotationsList: []
classIdIfNonLocal: sample/B.Nested classIdIfNonLocal: sample/B.Nested
@@ -78,6 +162,103 @@ KtNamedClassOrObjectSymbol:
typeParameters: [] typeParameters: []
visibility: Public visibility: Public
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: sample/B.bar
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isActual: false
isBuiltinFunctionInvoke: false
isExpect: true
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: bar
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Unit
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
KtKotlinPropertySymbol:
annotationsList: []
backingFieldSymbol: KtBackingFieldSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
isExtension: false
name: field
origin: PROPERTY_BACKING_FIELD
owningProperty: KtKotlinPropertySymbol(sample/B.n)
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
callableIdIfNonLocal: sample/B.n
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isActual: false
isConst: false
isDelegatedProperty: false
isExpect: true
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: n
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
KtNamedClassOrObjectSymbol: KtNamedClassOrObjectSymbol:
annotationsList: [] annotationsList: []
classIdIfNonLocal: sample/C classIdIfNonLocal: sample/C
@@ -130,6 +311,164 @@ KtNamedClassOrObjectSymbol:
typeParameters: [] typeParameters: []
visibility: Public visibility: Public
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: sample/baz
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isActual: false
isBuiltinFunctionInvoke: false
isExpect: true
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: baz
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Unit
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: []
visibility: Public
KtKotlinPropertySymbol:
annotationsList: []
backingFieldSymbol: KtBackingFieldSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
isExtension: false
name: field
origin: PROPERTY_BACKING_FIELD
owningProperty: KtKotlinPropertySymbol(sample/m)
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
callableIdIfNonLocal: sample/m
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
hasBackingField: true
hasGetter: true
hasSetter: true
initializer: null
isActual: false
isConst: false
isDelegatedProperty: false
isExpect: true
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: false
modality: FINAL
name: m
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
setter: KtPropertySetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
parameter: KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Unit
symbolKind: ACCESSOR
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
]
visibility: Public
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
// FILE: JvmAndroid.kt // FILE: JvmAndroid.kt
KtNamedClassOrObjectSymbol: KtNamedClassOrObjectSymbol:
@@ -184,6 +523,90 @@ KtNamedClassOrObjectSymbol:
typeParameters: [] typeParameters: []
visibility: Public visibility: Public
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: sample/B
contextReceivers: []
hasStableParameterNames: true
isActual: true
isExpect: false
isExtension: false
isPrimary: true
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: sample/B
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: s
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/String
symbolKind: LOCAL
typeParameters: []
]
visibility: Public
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: sample/B
contextReceivers: []
hasStableParameterNames: true
isActual: true
isExpect: false
isExtension: false
isPrimary: false
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: sample/B
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: n
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
]
visibility: Public
KtNamedClassOrObjectSymbol: KtNamedClassOrObjectSymbol:
annotationsList: [] annotationsList: []
classIdIfNonLocal: sample/B.Nested classIdIfNonLocal: sample/B.Nested
@@ -210,6 +633,103 @@ KtNamedClassOrObjectSymbol:
typeParameters: [] typeParameters: []
visibility: Public visibility: Public
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: sample/B.bar
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isActual: true
isBuiltinFunctionInvoke: false
isExpect: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: bar
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Unit
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
KtKotlinPropertySymbol:
annotationsList: []
backingFieldSymbol: KtBackingFieldSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
isExtension: false
name: field
origin: PROPERTY_BACKING_FIELD
owningProperty: KtKotlinPropertySymbol(sample/B.n)
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
callableIdIfNonLocal: sample/B.n
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: KtConstantInitializerValue(0)
isActual: true
isConst: false
isDelegatedProperty: false
isExpect: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: n
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
setter: null
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
KtTypeAliasSymbol: KtTypeAliasSymbol:
annotationsList: [] annotationsList: []
classIdIfNonLocal: sample/C classIdIfNonLocal: sample/C
@@ -276,3 +796,162 @@ KtNamedClassOrObjectSymbol:
symbolKind: CLASS_MEMBER symbolKind: CLASS_MEMBER
typeParameters: [] typeParameters: []
visibility: Public visibility: Public
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: sample/baz
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isActual: true
isBuiltinFunctionInvoke: false
isExpect: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: baz
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Unit
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: []
visibility: Public
KtKotlinPropertySymbol:
annotationsList: []
backingFieldSymbol: KtBackingFieldSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
isExtension: false
name: field
origin: PROPERTY_BACKING_FIELD
owningProperty: KtKotlinPropertySymbol(sample/m)
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
callableIdIfNonLocal: sample/m
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
hasBackingField: true
hasGetter: true
hasSetter: true
initializer: KtConstantInitializerValue(0)
isActual: true
isConst: false
isDelegatedProperty: false
isExpect: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: false
modality: FINAL
name: m
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
setter: KtPropertySetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
parameter: KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Unit
symbolKind: ACCESSOR
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Int
symbolKind: LOCAL
typeParameters: []
]
visibility: Public
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public