FIR: support direct use of typealias with friend-paths

also fixes one IC test
This commit is contained in:
Ilya Chernikov
2021-02-17 20:24:18 +01:00
parent ef2bb48706
commit 20fdad87ec
4 changed files with 8 additions and 0 deletions
@@ -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
}
@@ -13,3 +13,5 @@ internal val internalVal = ""
internal fun internalFun(s: String): String = s
internal typealias InternalTypealias = InternalInterface
internal typealias InternalClassAlias = PublicClass
@@ -8,3 +8,5 @@ private fun test(i: InternalInterface): InternalTypealias {
return i
}
private val x = InternalClassAlias