[IR] Add returnType to consturcotrs of IrFunctionBase
This commit is contained in:
+1
-1
@@ -95,13 +95,13 @@ class JsDeclarationFactory : DeclarationFactory {
|
||||
symbol,
|
||||
oldConstructor.name,
|
||||
oldConstructor.visibility,
|
||||
oldConstructor.returnType,
|
||||
oldConstructor.isInline,
|
||||
oldConstructor.isExternal,
|
||||
oldConstructor.isPrimary
|
||||
).also {
|
||||
descriptor.bind(it)
|
||||
it.parent = oldConstructor.parent
|
||||
it.returnType = oldConstructor.returnType
|
||||
}
|
||||
|
||||
newConstructor.copyTypeParametersFrom(oldConstructor)
|
||||
|
||||
+2
-1
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.IrVariableSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
||||
import org.jetbrains.kotlin.ir.util.defaultType
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class JsSharedVariablesManager(val builtIns: IrBuiltIns, val implicitDeclarationsFile: IrFile) : SharedVariablesManager {
|
||||
@@ -169,7 +170,7 @@ class JsSharedVariablesManager(val builtIns: IrBuiltIns, val implicitDeclaration
|
||||
|
||||
val declaration = IrConstructorImpl(
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, JsLoweredDeclarationOrigin.JS_CLOSURE_BOX_CLASS_DECLARATION, symbol,
|
||||
Name.special("<init>"), Visibilities.PUBLIC, false, false, true
|
||||
Name.special("<init>"), Visibilities.PUBLIC, closureBoxClassDeclaration.defaultType, false, false, true
|
||||
)
|
||||
|
||||
descriptor.bind(declaration)
|
||||
|
||||
@@ -140,13 +140,13 @@ object JsIrBuilder {
|
||||
name,
|
||||
visibility,
|
||||
modality,
|
||||
returnType,
|
||||
isInline,
|
||||
isExternal,
|
||||
isTailrec,
|
||||
isSuspend
|
||||
).also {
|
||||
descriptor.bind(it)
|
||||
it.returnType = returnType
|
||||
it.parent = parent
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -417,13 +417,13 @@ class EnumClassTransformer(val context: JsIrBackendContext, private val irClass:
|
||||
loweredConstructorSymbol,
|
||||
enumConstructor.name,
|
||||
enumConstructor.visibility,
|
||||
enumConstructor.returnType,
|
||||
enumConstructor.isInline,
|
||||
enumConstructor.isExternal,
|
||||
enumConstructor.isPrimary
|
||||
).apply {
|
||||
loweredConstructorDescriptor.bind(this)
|
||||
parent = enumClass
|
||||
returnType = enumConstructor.returnType
|
||||
valueParameters += JsIrBuilder.buildValueParameter("name", 0, context.irBuiltIns.stringType).also { it.parent = this }
|
||||
valueParameters += JsIrBuilder.buildValueParameter("ordinal", 1, context.irBuiltIns.intType).also { it.parent = this }
|
||||
copyParameterDeclarationsFrom(enumConstructor)
|
||||
|
||||
+7
-4
@@ -498,6 +498,7 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
symbol,
|
||||
Name.special("<init>"),
|
||||
irFunction.visibility,
|
||||
coroutineClass.defaultType,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
@@ -505,7 +506,6 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
|
||||
descriptor.bind(declaration)
|
||||
declaration.parent = coroutineClass
|
||||
declaration.returnType = coroutineClass.defaultType
|
||||
|
||||
declaration.valueParameters += functionParameters.map {
|
||||
JsIrBuilder.buildValueParameter(it.name, it.index, it.type, it.origin).also { p -> p.parent = declaration }
|
||||
@@ -567,6 +567,7 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
symbol,
|
||||
Name.special("<init>"),
|
||||
irFunction.visibility,
|
||||
coroutineClass.defaultType,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
@@ -574,7 +575,6 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
|
||||
descriptor.bind(declaration)
|
||||
declaration.parent = coroutineClass
|
||||
declaration.returnType = coroutineClass.defaultType
|
||||
|
||||
boundParams.mapIndexedTo(declaration.valueParameters) { i, p ->
|
||||
JsIrBuilder.buildValueParameter(p.name, i, p.type, p.origin).also { it.parent = declaration }
|
||||
@@ -627,6 +627,7 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
Name.identifier("create"),
|
||||
Visibilities.PRIVATE,
|
||||
Modality.FINAL,
|
||||
coroutineClass.defaultType,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
@@ -703,6 +704,7 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
Name.identifier("invoke"),
|
||||
Visibilities.PRIVATE,
|
||||
Modality.FINAL,
|
||||
irFunction.returnType,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
@@ -712,7 +714,7 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
descriptor.bind(declaration)
|
||||
declaration.parent = coroutineClass
|
||||
declaration.returnType = irFunction.returnType
|
||||
declaration.dispatchReceiverParameter = coroutineClassThis
|
||||
declaration.dispatchReceiverParameter = coroutineClassThis.copyTo(declaration)
|
||||
|
||||
declaration.overriddenSymbols += suspendFunctionInvokeFunctionDeclaration.symbol
|
||||
declaration.overriddenSymbols += functionInvokeFunctionDeclaration.symbol
|
||||
@@ -793,6 +795,7 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
doResumeFunction.name,
|
||||
doResumeFunction.visibility,
|
||||
Modality.FINAL,
|
||||
context.irBuiltIns.anyNType,
|
||||
doResumeFunction.isInline,
|
||||
doResumeFunction.isExternal,
|
||||
doResumeFunction.isTailrec,
|
||||
@@ -986,4 +989,4 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
||||
scopeStack.peek()!!.add(declaration)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -516,6 +516,7 @@ internal class DeepCopyIrTreeWithDescriptors(val targetDescriptor: FunctionDescr
|
||||
endOffset = declaration.endOffset,
|
||||
origin = mapDeclarationOrigin(declaration.origin),
|
||||
descriptor = descriptor,
|
||||
returnType = declaration.returnType,
|
||||
body = declaration.body?.transform(this@InlineCopyIr, null)
|
||||
).also {
|
||||
it.setOverrides(context.symbolTable)
|
||||
|
||||
Reference in New Issue
Block a user