IR BE common: isExpect
This commit is contained in:
@@ -67,9 +67,10 @@ fun IrClass.addSimpleDelegatingConstructor(
|
||||
superConstructor.name,
|
||||
superConstructor.visibility,
|
||||
defaultType,
|
||||
false,
|
||||
false,
|
||||
isPrimary
|
||||
isInline = false,
|
||||
isExternal = false,
|
||||
isPrimary = isPrimary,
|
||||
isExpect = false
|
||||
).also { constructor ->
|
||||
descriptor.bind(constructor)
|
||||
constructor.parent = this
|
||||
@@ -481,10 +482,11 @@ fun IrClass.addFakeOverrides() {
|
||||
Visibilities.INHERITED,
|
||||
irFunction.modality,
|
||||
irFunction.returnType,
|
||||
irFunction.isInline,
|
||||
irFunction.isExternal,
|
||||
irFunction.isTailrec,
|
||||
irFunction.isSuspend
|
||||
isInline = irFunction.isInline,
|
||||
isExternal = irFunction.isExternal,
|
||||
isTailrec = irFunction.isTailrec,
|
||||
isSuspend = irFunction.isSuspend,
|
||||
isExpect = irFunction.isExpect
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
parent = this@addFakeOverrides
|
||||
@@ -521,7 +523,10 @@ fun createStaticFunctionWithReceivers(
|
||||
modality,
|
||||
oldFunction.returnType,
|
||||
isInline = oldFunction.isInline,
|
||||
isExternal = false, isTailrec = false, isSuspend = oldFunction.isSuspend
|
||||
isExternal = false,
|
||||
isTailrec = false,
|
||||
isSuspend = oldFunction.isSuspend,
|
||||
isExpect = oldFunction.isExpect
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
parent = irParent
|
||||
|
||||
+15
-9
@@ -290,7 +290,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
isInner = false,
|
||||
isData = false,
|
||||
isExternal = false,
|
||||
isInline = false
|
||||
isInline = false,
|
||||
isExpect = false
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = irFunction.parent
|
||||
@@ -392,7 +393,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
coroutineClass.defaultType,
|
||||
isInline = false,
|
||||
isExternal = false,
|
||||
isPrimary = true
|
||||
isPrimary = true,
|
||||
isExpect = false
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = coroutineClass
|
||||
@@ -437,7 +439,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
coroutineClass.defaultType,
|
||||
isInline = false,
|
||||
isExternal = false,
|
||||
isPrimary = false
|
||||
isPrimary = false,
|
||||
isExpect = false
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = coroutineClass
|
||||
@@ -484,7 +487,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
isInline = false,
|
||||
isExternal = false,
|
||||
isTailrec = false,
|
||||
isSuspend = false
|
||||
isSuspend = false,
|
||||
isExpect = false
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = coroutineClass
|
||||
@@ -549,7 +553,8 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
isInline = false,
|
||||
isExternal = false,
|
||||
isTailrec = false,
|
||||
isSuspend = true
|
||||
isSuspend = true,
|
||||
isExpect = false
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = coroutineClass
|
||||
@@ -603,10 +608,11 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
stateMachineFunction.visibility,
|
||||
Modality.FINAL,
|
||||
context.irBuiltIns.anyNType,
|
||||
stateMachineFunction.isInline,
|
||||
stateMachineFunction.isExternal,
|
||||
stateMachineFunction.isTailrec,
|
||||
stateMachineFunction.isSuspend
|
||||
isInline = stateMachineFunction.isInline,
|
||||
isExternal = stateMachineFunction.isExternal,
|
||||
isTailrec = stateMachineFunction.isTailrec,
|
||||
isSuspend = stateMachineFunction.isSuspend,
|
||||
isExpect = stateMachineFunction.isExpect
|
||||
).apply {
|
||||
d.bind(this)
|
||||
parent = coroutineClass
|
||||
|
||||
+11
-9
@@ -493,9 +493,10 @@ private fun buildFunctionDeclaration(irFunction: IrFunction, origin: IrDeclarati
|
||||
irFunction.name,
|
||||
irFunction.visibility,
|
||||
irFunction.returnType,
|
||||
irFunction.isInline,
|
||||
false,
|
||||
false
|
||||
isInline = irFunction.isInline,
|
||||
isExternal = false,
|
||||
isPrimary = false,
|
||||
isExpect = false
|
||||
).also {
|
||||
descriptor.bind(it)
|
||||
it.parent = irFunction.parent
|
||||
@@ -516,10 +517,11 @@ private fun buildFunctionDeclaration(irFunction: IrFunction, origin: IrDeclarati
|
||||
irFunction.visibility,
|
||||
Modality.FINAL,
|
||||
irFunction.returnType,
|
||||
irFunction.isInline,
|
||||
false,
|
||||
false,
|
||||
irFunction.isSuspend
|
||||
isInline = irFunction.isInline,
|
||||
isExternal = false,
|
||||
isTailrec = false,
|
||||
isSuspend = irFunction.isSuspend,
|
||||
isExpect = irFunction.isExpect
|
||||
).also {
|
||||
descriptor.bind(it)
|
||||
it.parent = irFunction.parent
|
||||
@@ -551,8 +553,8 @@ private fun IrFunction.valueParameter(index: Int, name: Name, type: IrType): IrV
|
||||
index,
|
||||
type,
|
||||
null,
|
||||
false,
|
||||
false
|
||||
isCrossinline = false,
|
||||
isNoinline = false
|
||||
).also {
|
||||
parameterDescriptor.bind(it)
|
||||
it.parent = this
|
||||
|
||||
+4
-2
@@ -137,7 +137,8 @@ class InitializersLowering(
|
||||
// TODO: mark as synthesized
|
||||
val staticInitializerDescriptor = WrappedSimpleFunctionDescriptor()
|
||||
val staticInitializer = IrFunctionImpl(
|
||||
irClass.startOffset, irClass.endOffset,
|
||||
irClass.startOffset,
|
||||
irClass.endOffset,
|
||||
declarationOrigin,
|
||||
IrSimpleFunctionSymbolImpl(staticInitializerDescriptor),
|
||||
clinitName,
|
||||
@@ -147,7 +148,8 @@ class InitializersLowering(
|
||||
isInline = false,
|
||||
isExternal = false,
|
||||
isTailrec = false,
|
||||
isSuspend = false
|
||||
isSuspend = false,
|
||||
isExpect = false
|
||||
).apply {
|
||||
staticInitializerDescriptor.bind(this)
|
||||
body = IrBlockBodyImpl(irClass.startOffset, irClass.endOffset,
|
||||
|
||||
+10
-6
@@ -518,10 +518,11 @@ class LocalDeclarationsLowering(
|
||||
Visibilities.PRIVATE,
|
||||
Modality.FINAL,
|
||||
oldDeclaration.returnType,
|
||||
oldDeclaration.isInline,
|
||||
oldDeclaration.isExternal,
|
||||
oldDeclaration.isTailrec,
|
||||
oldDeclaration.isSuspend
|
||||
isInline = oldDeclaration.isInline,
|
||||
isExternal = oldDeclaration.isExternal,
|
||||
isTailrec = oldDeclaration.isTailrec,
|
||||
isSuspend = oldDeclaration.isSuspend,
|
||||
isExpect = oldDeclaration.isExpect
|
||||
)
|
||||
newDescriptor.bind(newDeclaration)
|
||||
|
||||
@@ -611,8 +612,11 @@ class LocalDeclarationsLowering(
|
||||
|
||||
val newDeclaration = IrConstructorImpl(
|
||||
oldDeclaration.startOffset, oldDeclaration.endOffset, oldDeclaration.origin,
|
||||
newSymbol, oldDeclaration.name, loweredConstructorVisibility, oldDeclaration.returnType, oldDeclaration.isInline,
|
||||
oldDeclaration.isExternal, oldDeclaration.isPrimary
|
||||
newSymbol, oldDeclaration.name, loweredConstructorVisibility, oldDeclaration.returnType,
|
||||
isInline = oldDeclaration.isInline,
|
||||
isExternal = oldDeclaration.isExternal,
|
||||
isPrimary = oldDeclaration.isPrimary,
|
||||
isExpect = oldDeclaration.isExpect
|
||||
)
|
||||
|
||||
newDescriptor.bind(newDeclaration)
|
||||
|
||||
+1
-3
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.backend.common.BackendContext
|
||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
|
||||
import org.jetbrains.kotlin.backend.common.ir.copyTo
|
||||
import org.jetbrains.kotlin.backend.common.ir.copyTypeParametersFrom
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
@@ -23,7 +22,6 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
||||
import org.jetbrains.kotlin.ir.types.typeWith
|
||||
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
|
||||
import org.jetbrains.kotlin.ir.util.render
|
||||
import org.jetbrains.kotlin.ir.util.transformDeclarationsFlat
|
||||
import org.jetbrains.kotlin.ir.visitors.*
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -87,7 +85,7 @@ class PropertiesLowering(
|
||||
return IrFunctionImpl(
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, Name.identifier(name),
|
||||
declaration.visibility, Modality.OPEN, context.irBuiltIns.unitType,
|
||||
isInline = false, isExternal = false, isTailrec = false, isSuspend = false
|
||||
isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
|
||||
|
||||
+6
-4
@@ -26,7 +26,8 @@ fun IrClassBuilder.buildClass(): IrClass {
|
||||
return IrClassImpl(
|
||||
startOffset, endOffset, origin,
|
||||
IrClassSymbolImpl(wrappedDescriptor),
|
||||
name, kind, visibility, modality, isCompanion, isInner, isData, isExternal, isInline
|
||||
name, kind, visibility, modality,
|
||||
isCompanion = isCompanion, isInner = isInner, isData = isData, isExternal = isExternal, isInline = isInline, isExpect = isExpect
|
||||
).also {
|
||||
wrappedDescriptor.bind(it)
|
||||
}
|
||||
@@ -74,7 +75,8 @@ fun IrPropertyBuilder.buildProperty(): IrProperty {
|
||||
return IrPropertyImpl(
|
||||
startOffset, endOffset, origin,
|
||||
IrPropertySymbolImpl(wrappedDescriptor),
|
||||
name, visibility, modality, isVar, isConst, isLateinit, isDelegated, isExternal
|
||||
name, visibility, modality,
|
||||
isVar = isVar, isConst = isConst, isLateinit = isLateinit, isDelegated = isDelegated, isExpect = isExpect, isExternal = isExternal
|
||||
).also {
|
||||
wrappedDescriptor.bind(it)
|
||||
}
|
||||
@@ -121,7 +123,7 @@ fun IrFunctionBuilder.buildFun(originalDescriptor: FunctionDescriptor? = null):
|
||||
startOffset, endOffset, origin,
|
||||
IrSimpleFunctionSymbolImpl(wrappedDescriptor),
|
||||
name, visibility, modality, returnType,
|
||||
isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend
|
||||
isInline = isInline, isExternal = isExternal, isTailrec = isTailrec, isSuspend = isSuspend, isExpect = isExpect
|
||||
).also {
|
||||
wrappedDescriptor.bind(it)
|
||||
}
|
||||
@@ -134,7 +136,7 @@ fun IrFunctionBuilder.buildConstructor(): IrConstructorImpl {
|
||||
IrConstructorSymbolImpl(wrappedDescriptor),
|
||||
Name.special("<init>"),
|
||||
visibility, returnType,
|
||||
isInline = isInline, isExternal = isExternal, isPrimary = isPrimary
|
||||
isInline = isInline, isExternal = isExternal, isPrimary = isPrimary, isExpect = isExpect
|
||||
).also {
|
||||
wrappedDescriptor.bind(it)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user