FIR: support direct use of typealias with friend-paths
also fixes one IC test
This commit is contained in:
+1
@@ -179,6 +179,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
typeParameters += local.typeDeserializer.ownTypeParameters.map { it.fir }
|
||||
}.apply {
|
||||
versionRequirementsTable = c.versionRequirementTable
|
||||
sourceElement = c.containerSource
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Vendored
+2
@@ -13,3 +13,5 @@ internal val internalVal = ""
|
||||
internal fun internalFun(s: String): String = s
|
||||
|
||||
internal typealias InternalTypealias = InternalInterface
|
||||
|
||||
internal typealias InternalClassAlias = PublicClass
|
||||
+2
@@ -8,3 +8,5 @@ private fun test(i: InternalInterface): InternalTypealias {
|
||||
|
||||
return i
|
||||
}
|
||||
|
||||
private val x = InternalClassAlias
|
||||
Reference in New Issue
Block a user