@@ -10,9 +10,7 @@ import org.jetbrains.kotlin.ir.builders.*
1010import org.jetbrains.kotlin.ir.builders.declarations.*
1111import org.jetbrains.kotlin.ir.declarations.*
1212import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
13- import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
1413import org.jetbrains.kotlin.ir.expressions.impl.IrGetFieldImpl
15- import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
1614import org.jetbrains.kotlin.ir.types.IrSimpleType
1715import org.jetbrains.kotlin.ir.types.getClass
1816import org.jetbrains.kotlin.ir.types.typeOrNull
@@ -59,7 +57,7 @@ fun IrPluginContext.createSuspendLambdaWithCoroutineScope(
5957 lambdaType : IrSimpleType ,
6058 originFunction : IrFunction ,
6159): IrClass {
62- return IrFactoryImpl .buildClass {
60+ return irFactory .buildClass {
6361 name = SpecialNames .NO_NAME_PROVIDED
6462 kind = ClassKind .CLASS
6563 /*
@@ -149,35 +147,15 @@ fun IrPluginContext.createSuspendLambdaFunctionWithCoroutineScope(
149147 function : IrFunction ,
150148 blockBodyBuilder : IrBlockBodyBuilder
151149): IrSimpleFunction {
152- val func = IrFunctionImpl (
153- startOffset = - 1 ,
154- endOffset = - 1 ,
155- origin = IrDeclarationOrigin .LOCAL_FUNCTION_FOR_LAMBDA ,
156- name = SpecialNames .NO_NAME_PROVIDED ,
157- visibility = DescriptorVisibilities .LOCAL ,
158- isInline = false ,
159- isExpect = false ,
160- returnType = function.returnType,
161- modality = Modality .FINAL ,
162- symbol = IrSimpleFunctionSymbolImpl (),
163- isSuspend = true ,
164- isTailrec = false ,
165- isOperator = false ,
166- isInfix = false ,
167- isExternal = false ,
168- )
169-
170- // val func1 = IrFactoryImpl.buildFun {
171- // name = SpecialNames.NO_NAME_PROVIDED
172- // visibility = DescriptorVisibilities.LOCAL
173- // isSuspend = true
174- // returnType = function.returnType
175- // }
176-
177- with (func) {
150+ return irFactory.buildFun {
151+ origin = IrDeclarationOrigin .LOCAL_FUNCTION_FOR_LAMBDA
152+ name = SpecialNames .NO_NAME_PROVIDED
153+ visibility = DescriptorVisibilities .LOCAL
154+ returnType = function.returnType
155+ modality = Modality .FINAL
156+ isSuspend = true
157+ }.apply {
178158 parent = function
179- // origin = IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA
180-
181159 body = createIrBuilder(symbol).run {
182160 // don't use expr body, coroutine codegen can't generate for it.
183161 irBlockBody {
@@ -198,8 +176,6 @@ fun IrPluginContext.createSuspendLambdaFunctionWithCoroutineScope(
198176 }
199177 }
200178 }
201-
202- return func
203179}
204180
205181fun IrFunction.paramsAndReceiversAsParamsList (): List <IrValueParameter > {
0 commit comments