diff --git a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt index d2c7b473cdb..b88c9ad1b64 100644 --- a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt +++ b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt @@ -179,6 +179,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { typeParameters += local.typeDeserializer.ownTypeParameters.map { it.fir } }.apply { versionRequirementsTable = c.versionRequirementTable + sourceElement = c.containerSource } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt index 21007aa16c2..2b991e1152c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationUtil.kt @@ -169,10 +169,13 @@ private object SourceElementKey : FirDeclarationDataKey() var FirRegularClass.sourceElement: SourceElement? by FirDeclarationDataRegistry.data(SourceElementKey) +var FirTypeAlias.sourceElement: SourceElement? by FirDeclarationDataRegistry.data(SourceElementKey) + val FirMemberDeclaration.containerSource: SourceElement? get() = when (this) { is FirCallableMemberDeclaration<*> -> containerSource is FirRegularClass -> sourceElement + is FirTypeAlias -> sourceElement else -> null } diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/internalFromFriendModuleFir/library/a.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/internalFromFriendModuleFir/library/a.kt index 0aba9878eca..165295092f0 100644 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/internalFromFriendModuleFir/library/a.kt +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/internalFromFriendModuleFir/library/a.kt @@ -13,3 +13,5 @@ internal val internalVal = "" internal fun internalFun(s: String): String = s internal typealias InternalTypealias = InternalInterface + +internal typealias InternalClassAlias = PublicClass \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/internalFromFriendModuleFir/source.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/internalFromFriendModuleFir/source.kt index 5e872880a78..74c56a66617 100644 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/internalFromFriendModuleFir/source.kt +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/internalFromFriendModuleFir/source.kt @@ -8,3 +8,5 @@ private fun test(i: InternalInterface): InternalTypealias { return i } + +private val x = InternalClassAlias \ No newline at end of file