IR: IrTypeAlias: isActual
This commit is contained in:
@@ -16,5 +16,6 @@ interface IrTypeAlias :
|
||||
IrTypeParametersContainer {
|
||||
|
||||
override val descriptor: TypeAliasDescriptor
|
||||
val isActual: Boolean
|
||||
val expandedType: IrType
|
||||
}
|
||||
@@ -26,6 +26,7 @@ class IrTypeAliasImpl(
|
||||
override val name: Name,
|
||||
override val visibility: Visibility,
|
||||
override val expandedType: IrType,
|
||||
override val isActual: Boolean,
|
||||
origin: IrDeclarationOrigin
|
||||
) :
|
||||
IrDeclarationBase(startOffset, endOffset, origin),
|
||||
@@ -65,6 +66,7 @@ class IrTypeAliasImpl(
|
||||
symbol.descriptor.name,
|
||||
symbol.descriptor.visibility,
|
||||
expandedType,
|
||||
symbol.descriptor.isActual,
|
||||
origin
|
||||
)
|
||||
}
|
||||
|
||||
+3
-7
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.ir.declarations.lazy
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
@@ -25,6 +24,9 @@ class IrLazyTypeAlias(
|
||||
endOffset: Int,
|
||||
origin: IrDeclarationOrigin,
|
||||
override val symbol: IrTypeAliasSymbol,
|
||||
override val name: Name,
|
||||
override val visibility: Visibility,
|
||||
override val isActual: Boolean,
|
||||
stubGenerator: DeclarationStubGenerator,
|
||||
typeTranslator: TypeTranslator
|
||||
) :
|
||||
@@ -38,12 +40,6 @@ class IrLazyTypeAlias(
|
||||
override val descriptor: TypeAliasDescriptor
|
||||
get() = symbol.descriptor
|
||||
|
||||
override val name: Name
|
||||
get() = descriptor.name
|
||||
|
||||
override val visibility: Visibility
|
||||
get() = descriptor.visibility
|
||||
|
||||
override val typeParameters: MutableList<IrTypeParameter> by lazy {
|
||||
descriptor.declaredTypeParameters.mapTo(arrayListOf()) {
|
||||
stubGenerator.generateOrGetTypeParameterStub(it)
|
||||
|
||||
@@ -251,7 +251,11 @@ class DeclarationStubGenerator(
|
||||
}
|
||||
val origin = computeOrigin(descriptor)
|
||||
return symbolTable.declareTypeAlias(descriptor) {
|
||||
IrLazyTypeAlias(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator)
|
||||
IrLazyTypeAlias(
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin,
|
||||
it, it.descriptor.name, it.descriptor.visibility, it.descriptor.isActual,
|
||||
this, typeTranslator
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -341,6 +341,7 @@ open class DeepCopyIrTreeWithSymbols(
|
||||
symbolRenamer.getTypeAliasName(declaration.symbol),
|
||||
declaration.visibility,
|
||||
declaration.expandedType.remapType(),
|
||||
declaration.isActual,
|
||||
mapDeclarationOrigin(declaration.origin)
|
||||
).apply {
|
||||
transformAnnotations(declaration)
|
||||
|
||||
@@ -498,9 +498,15 @@ class RenderIrElementVisitor : IrElementVisitor<String, Nothing?> {
|
||||
override fun visitTypeAlias(declaration: IrTypeAlias, data: Nothing?): String =
|
||||
declaration.run {
|
||||
"TYPEALIAS ${declaration.renderOriginIfNonTrivial()}" +
|
||||
"name:$name visibility:$visibility expandedType:${expandedType.render()}"
|
||||
"name:$name visibility:$visibility expandedType:${expandedType.render()}" +
|
||||
renderTypeAliasFlags()
|
||||
}
|
||||
|
||||
private fun IrTypeAlias.renderTypeAliasFlags(): String =
|
||||
renderFlagsList(
|
||||
"actual".takeIf { isActual }
|
||||
)
|
||||
|
||||
private fun IrLocalDelegatedProperty.renderLocalDelegatedPropertyFlags() =
|
||||
if (isVar) "var" else "val"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user