Copy methods for lambdas to DefaultImpls without receiver transformation
#KT-48230 Fixed
This commit is contained in:
+6
@@ -1324,6 +1324,12 @@ public class FirBlackBoxInlineCodegenTestGenerated extends AbstractFirBlackBoxIn
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
|
|||||||
+13
-4
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
|||||||
internal class InterfaceLowering(val context: JvmBackendContext) : IrElementTransformerVoid(), ClassLoweringPass {
|
internal class InterfaceLowering(val context: JvmBackendContext) : IrElementTransformerVoid(), ClassLoweringPass {
|
||||||
|
|
||||||
private val removedFunctions = hashMapOf<IrSimpleFunctionSymbol, IrSimpleFunctionSymbol>()
|
private val removedFunctions = hashMapOf<IrSimpleFunctionSymbol, IrSimpleFunctionSymbol>()
|
||||||
|
private val removedFunctionsWithoutRemapping = mutableSetOf<IrSimpleFunctionSymbol>()
|
||||||
|
|
||||||
override fun lower(irClass: IrClass) {
|
override fun lower(irClass: IrClass) {
|
||||||
if (!irClass.isJvmInterface) return
|
if (!irClass.isJvmInterface) return
|
||||||
@@ -50,7 +51,7 @@ internal class InterfaceLowering(val context: JvmBackendContext) : IrElementTran
|
|||||||
}
|
}
|
||||||
|
|
||||||
irClass.declarations.removeAll {
|
irClass.declarations.removeAll {
|
||||||
it is IrFunction && removedFunctions.containsKey(it.symbol)
|
it is IrFunction && (removedFunctions.containsKey(it.symbol) || removedFunctionsWithoutRemapping.contains(it.symbol))
|
||||||
}
|
}
|
||||||
|
|
||||||
val defaultImplsIrClass = context.cachedDeclarations.getDefaultImplsClass(irClass)
|
val defaultImplsIrClass = context.cachedDeclarations.getDefaultImplsClass(irClass)
|
||||||
@@ -131,9 +132,17 @@ internal class InterfaceLowering(val context: JvmBackendContext) : IrElementTran
|
|||||||
(function.origin == JvmLoweredDeclarationOrigin.SYNTHETIC_METHOD_FOR_PROPERTY_OR_TYPEALIAS_ANNOTATIONS &&
|
(function.origin == JvmLoweredDeclarationOrigin.SYNTHETIC_METHOD_FOR_PROPERTY_OR_TYPEALIAS_ANNOTATIONS &&
|
||||||
(isCompatibilityMode || jvmDefaultMode == JvmDefaultMode.ENABLE) &&
|
(isCompatibilityMode || jvmDefaultMode == JvmDefaultMode.ENABLE) &&
|
||||||
function.isCompiledToJvmDefault(jvmDefaultMode)) -> {
|
function.isCompiledToJvmDefault(jvmDefaultMode)) -> {
|
||||||
val defaultImpl = createDefaultImpl(function)
|
if (function.origin == IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA || function.origin == IrDeclarationOrigin.LOCAL_FUNCTION) {
|
||||||
defaultImpl.body = function.moveBodyTo(defaultImpl)
|
//move as is
|
||||||
removedFunctions[function.symbol] = defaultImpl.symbol
|
val defaultImplsClass = context.cachedDeclarations.getDefaultImplsClass(irClass)
|
||||||
|
defaultImplsClass.declarations.add(function)
|
||||||
|
removedFunctionsWithoutRemapping.add(function.symbol)
|
||||||
|
function.parent = defaultImplsClass
|
||||||
|
} else {
|
||||||
|
val defaultImpl = createDefaultImpl(function)
|
||||||
|
defaultImpl.body = function.moveBodyTo(defaultImpl)
|
||||||
|
removedFunctions[function.symbol] = defaultImpl.symbol
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+6
-2
@@ -39,11 +39,15 @@ class FunctionGenerator(declarationGenerator: DeclarationGenerator) : Declaratio
|
|||||||
|
|
||||||
constructor(context: GeneratorContext) : this(DeclarationGenerator(context))
|
constructor(context: GeneratorContext) : this(DeclarationGenerator(context))
|
||||||
|
|
||||||
fun generateFunctionDeclaration(ktFunction: KtNamedFunction): IrSimpleFunction =
|
@JvmOverloads
|
||||||
|
fun generateFunctionDeclaration(
|
||||||
|
ktFunction: KtNamedFunction,
|
||||||
|
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED
|
||||||
|
): IrSimpleFunction =
|
||||||
declareSimpleFunction(
|
declareSimpleFunction(
|
||||||
ktFunction,
|
ktFunction,
|
||||||
ktFunction.receiverTypeReference,
|
ktFunction.receiverTypeReference,
|
||||||
IrDeclarationOrigin.DEFINED,
|
origin,
|
||||||
getOrFail(BindingContext.FUNCTION, ktFunction)
|
getOrFail(BindingContext.FUNCTION, ktFunction)
|
||||||
) {
|
) {
|
||||||
ktFunction.bodyExpression?.let { generateFunctionBody(it) }
|
ktFunction.bodyExpression?.let { generateFunctionBody(it) }
|
||||||
|
|||||||
+2
-1
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.psi2ir.generators
|
package org.jetbrains.kotlin.psi2ir.generators
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionExpressionImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionExpressionImpl
|
||||||
import org.jetbrains.kotlin.psi.KtLambdaExpression
|
import org.jetbrains.kotlin.psi.KtLambdaExpression
|
||||||
@@ -53,5 +54,5 @@ class LocalFunctionGenerator(statementGenerator: StatementGenerator) : Statement
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun generateFunctionDeclaration(ktFun: KtNamedFunction) =
|
private fun generateFunctionDeclaration(ktFun: KtNamedFunction) =
|
||||||
FunctionGenerator(context).generateFunctionDeclaration(ktFun)
|
FunctionGenerator(context).generateFunctionDeclaration(ktFun, IrDeclarationOrigin.LOCAL_FUNCTION)
|
||||||
}
|
}
|
||||||
@@ -49,6 +49,7 @@ interface IrDeclarationOrigin {
|
|||||||
object SCRIPT_RESULT_PROPERTY : IrDeclarationOriginImpl("SCRIPT_RESULT_PROPERTY")
|
object SCRIPT_RESULT_PROPERTY : IrDeclarationOriginImpl("SCRIPT_RESULT_PROPERTY")
|
||||||
object GENERATED_DATA_CLASS_MEMBER : IrDeclarationOriginImpl("GENERATED_DATA_CLASS_MEMBER")
|
object GENERATED_DATA_CLASS_MEMBER : IrDeclarationOriginImpl("GENERATED_DATA_CLASS_MEMBER")
|
||||||
object GENERATED_INLINE_CLASS_MEMBER : IrDeclarationOriginImpl("GENERATED_INLINE_CLASS_MEMBER")
|
object GENERATED_INLINE_CLASS_MEMBER : IrDeclarationOriginImpl("GENERATED_INLINE_CLASS_MEMBER")
|
||||||
|
object LOCAL_FUNCTION : IrDeclarationOriginImpl("LOCAL_FUNCTION")
|
||||||
object LOCAL_FUNCTION_FOR_LAMBDA : IrDeclarationOriginImpl("LOCAL_FUNCTION_FOR_LAMBDA")
|
object LOCAL_FUNCTION_FOR_LAMBDA : IrDeclarationOriginImpl("LOCAL_FUNCTION_FOR_LAMBDA")
|
||||||
object CATCH_PARAMETER : IrDeclarationOriginImpl("CATCH_PARAMETER")
|
object CATCH_PARAMETER : IrDeclarationOriginImpl("CATCH_PARAMETER")
|
||||||
object INSTANCE_RECEIVER : IrDeclarationOriginImpl("INSTANCE_RECEIVER")
|
object INSTANCE_RECEIVER : IrDeclarationOriginImpl("INSTANCE_RECEIVER")
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ FILE fqName:<root> fileName:/noSymbolForIntRangeIterator.kt
|
|||||||
CONST Int type=kotlin.Int value=10
|
CONST Int type=kotlin.Int value=10
|
||||||
VAR name:y type:kotlin.Int [val]
|
VAR name:y type:kotlin.Int [val]
|
||||||
CONST Int type=kotlin.Int value=10
|
CONST Int type=kotlin.Int value=10
|
||||||
FUN name:localFunc visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:localFunc visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
BLOCK type=kotlin.Unit origin=FOR_LOOP
|
BLOCK type=kotlin.Unit origin=FOR_LOOP
|
||||||
VAR FOR_LOOP_ITERATOR name:tmp_1 type:kotlin.collections.IntIterator [val]
|
VAR FOR_LOOP_ITERATOR name:tmp_1 type:kotlin.collections.IntIterator [val]
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
// NO_CHECK_LAMBDA_INLINING
|
||||||
|
// FILE: 1.kt
|
||||||
|
inline fun withO(block: String.() -> String) = "O".block()
|
||||||
|
|
||||||
|
// FILE: 2.kt
|
||||||
|
interface I {
|
||||||
|
val k: String
|
||||||
|
|
||||||
|
fun foo() = withO(fun String.(): String { return this + k })
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box(): String = object : I {
|
||||||
|
override val k = "K"
|
||||||
|
}.foo()
|
||||||
@@ -366,7 +366,7 @@ FILE fqName:<root> fileName:/clashingFakeOverrideSignatures.kt
|
|||||||
overridden:
|
overridden:
|
||||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.outerFun.LocalDerived
|
public open fun toString (): kotlin.String [fake_override] declared in <root>.outerFun.LocalDerived
|
||||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
FUN name:test visibility:local modality:FINAL <> (b:<root>.outerFun.LocalBase<kotlin.String>, d:<root>.outerFun.LocalDerived, d2:<root>.outerFun.LocalDerived2) returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:test visibility:local modality:FINAL <> (b:<root>.outerFun.LocalBase<kotlin.String>, d:<root>.outerFun.LocalDerived, d2:<root>.outerFun.LocalDerived2) returnType:kotlin.Unit
|
||||||
VALUE_PARAMETER name:b index:0 type:<root>.outerFun.LocalBase<kotlin.String>
|
VALUE_PARAMETER name:b index:0 type:<root>.outerFun.LocalBase<kotlin.String>
|
||||||
VALUE_PARAMETER name:d index:1 type:<root>.outerFun.LocalDerived
|
VALUE_PARAMETER name:d index:1 type:<root>.outerFun.LocalDerived
|
||||||
VALUE_PARAMETER name:d2 index:2 type:<root>.outerFun.LocalDerived2
|
VALUE_PARAMETER name:d2 index:2 type:<root>.outerFun.LocalDerived2
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ FILE fqName:<root> fileName:/defaultArguments.kt
|
|||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
CONST String type=kotlin.String value="abc"
|
CONST String type=kotlin.String value="abc"
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
FUN name:local visibility:local modality:FINAL <> (xx:kotlin.Int, yy:kotlin.Int, zz:kotlin.String) returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:local visibility:local modality:FINAL <> (xx:kotlin.Int, yy:kotlin.Int, zz:kotlin.String) returnType:kotlin.Unit
|
||||||
VALUE_PARAMETER name:xx index:0 type:kotlin.Int
|
VALUE_PARAMETER name:xx index:0 type:kotlin.Int
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
GET_VAR 'x: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null
|
GET_VAR 'x: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ FILE fqName:<root> fileName:/lambdas.kt
|
|||||||
FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> visibility:private [final,static]
|
FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> visibility:private [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
FUN_EXPR type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> origin=ANONYMOUS_FUNCTION
|
FUN_EXPR type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> origin=ANONYMOUS_FUNCTION
|
||||||
FUN name:<no name provided> visibility:local modality:FINAL <> (i:kotlin.Int, j:kotlin.Int) returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:<no name provided> visibility:local modality:FINAL <> (i:kotlin.Int, j:kotlin.Int) returnType:kotlin.Unit
|
||||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
||||||
VALUE_PARAMETER name:j index:1 type:kotlin.Int
|
VALUE_PARAMETER name:j index:1 type:kotlin.Int
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ FILE fqName:<root> fileName:/localFun.kt
|
|||||||
FUN name:outer visibility:public modality:FINAL <TT> () returnType:kotlin.Unit
|
FUN name:outer visibility:public modality:FINAL <TT> () returnType:kotlin.Unit
|
||||||
TYPE_PARAMETER name:TT index:0 variance: superTypes:[kotlin.Any?]
|
TYPE_PARAMETER name:TT index:0 variance: superTypes:[kotlin.Any?]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
FUN name:test1 visibility:local modality:FINAL <T> (i:kotlin.Int, j:T of <root>.outer.test1) returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:test1 visibility:local modality:FINAL <T> (i:kotlin.Int, j:T of <root>.outer.test1) returnType:kotlin.Unit
|
||||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
||||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
||||||
VALUE_PARAMETER name:j index:1 type:T of <root>.outer.test1
|
VALUE_PARAMETER name:j index:1 type:T of <root>.outer.test1
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
FUN name:test2 visibility:local modality:FINAL <> (i:kotlin.Int, j:kotlin.String) returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:test2 visibility:local modality:FINAL <> (i:kotlin.Int, j:kotlin.String) returnType:kotlin.Unit
|
||||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
CONST Int type=kotlin.Int value=0
|
CONST Int type=kotlin.Int value=0
|
||||||
@@ -15,10 +15,10 @@ FILE fqName:<root> fileName:/localFun.kt
|
|||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
CONST String type=kotlin.String value=""
|
CONST String type=kotlin.String value=""
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
FUN name:test3 visibility:local modality:FINAL <> (args:kotlin.Array<out kotlin.String>) returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:test3 visibility:local modality:FINAL <> (args:kotlin.Array<out kotlin.String>) returnType:kotlin.Unit
|
||||||
VALUE_PARAMETER name:args index:0 type:kotlin.Array<out kotlin.String> varargElementType:kotlin.String [vararg]
|
VALUE_PARAMETER name:args index:0 type:kotlin.Array<out kotlin.String> varargElementType:kotlin.String [vararg]
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
FUN name:textExt1 visibility:local modality:FINAL <> ($receiver:kotlin.String, i:kotlin.Int, j:TT of <root>.outer) returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:textExt1 visibility:local modality:FINAL <> ($receiver:kotlin.String, i:kotlin.Int, j:TT of <root>.outer) returnType:kotlin.Unit
|
||||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
|
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
|
||||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
||||||
VALUE_PARAMETER name:j index:1 type:TT of <root>.outer
|
VALUE_PARAMETER name:j index:1 type:TT of <root>.outer
|
||||||
|
|||||||
+1
-1
@@ -15,5 +15,5 @@ FILE fqName:<root> fileName:/kt47245.kt
|
|||||||
CALL 'public final fun next (): kotlin.Int [operator] declared in kotlin.collections.IntIterator' type=kotlin.Int origin=FOR_LOOP_NEXT
|
CALL 'public final fun next (): kotlin.Int [operator] declared in kotlin.collections.IntIterator' type=kotlin.Int origin=FOR_LOOP_NEXT
|
||||||
$this: GET_VAR 'val tmp_0: kotlin.collections.IntIterator [val] declared in <root>.test' type=kotlin.collections.IntIterator origin=null
|
$this: GET_VAR 'val tmp_0: kotlin.collections.IntIterator [val] declared in <root>.test' type=kotlin.collections.IntIterator origin=null
|
||||||
BLOCK type=kotlin.Unit origin=null
|
BLOCK type=kotlin.Unit origin=null
|
||||||
FUN name:x visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:x visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ FILE fqName:<root> fileName:/variableAsFunctionCallWithGenerics.kt
|
|||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='public final fun <get-kt26531Val> <T> (): kotlin.Function0<T of <root>.<get-kt26531Val>> declared in <root>'
|
RETURN type=kotlin.Nothing from='public final fun <get-kt26531Val> <T> (): kotlin.Function0<T of <root>.<get-kt26531Val>> declared in <root>'
|
||||||
FUN_EXPR type=kotlin.Function0<T of <root>.<get-kt26531Val>> origin=ANONYMOUS_FUNCTION
|
FUN_EXPR type=kotlin.Function0<T of <root>.<get-kt26531Val>> origin=ANONYMOUS_FUNCTION
|
||||||
FUN name:<no name provided> visibility:local modality:FINAL <> () returnType:T of <root>.<get-kt26531Val>
|
FUN LOCAL_FUNCTION name:<no name provided> visibility:local modality:FINAL <> () returnType:T of <root>.<get-kt26531Val>
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
RETURN type=kotlin.Nothing from='local final fun <no name provided> (): T of <root>.<get-kt26531Val> declared in <root>.<get-kt26531Val>'
|
RETURN type=kotlin.Nothing from='local final fun <no name provided> (): T of <root>.<get-kt26531Val> declared in <root>.<get-kt26531Val>'
|
||||||
GET_VAR '<this>: T of <root>.<get-kt26531Val> declared in <root>.<get-kt26531Val>' type=T of <root>.<get-kt26531Val> origin=null
|
GET_VAR '<this>: T of <root>.<get-kt26531Val> declared in <root>.<get-kt26531Val>' type=T of <root>.<get-kt26531Val> origin=null
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ FILE fqName:<root> fileName:/anonymousFunction.kt
|
|||||||
FIELD PROPERTY_BACKING_FIELD name:anonymous type:kotlin.Function0<kotlin.Unit> visibility:private [final,static]
|
FIELD PROPERTY_BACKING_FIELD name:anonymous type:kotlin.Function0<kotlin.Unit> visibility:private [final,static]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
FUN_EXPR type=kotlin.Function0<kotlin.Unit> origin=ANONYMOUS_FUNCTION
|
FUN_EXPR type=kotlin.Function0<kotlin.Unit> origin=ANONYMOUS_FUNCTION
|
||||||
FUN name:<no name provided> visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:<no name provided> visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
CALL 'public final fun println (): kotlin.Unit [inline] declared in kotlin.io.ConsoleKt' type=kotlin.Unit origin=null
|
CALL 'public final fun println (): kotlin.Unit [inline] declared in kotlin.io.ConsoleKt' type=kotlin.Unit origin=null
|
||||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anonymous> visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Unit>
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anonymous> visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Unit>
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ FILE fqName:<root> fileName:/localFunction.kt
|
|||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
VAR name:x type:kotlin.Int [var]
|
VAR name:x type:kotlin.Int [var]
|
||||||
CONST Int type=kotlin.Int value=0
|
CONST Int type=kotlin.Int value=0
|
||||||
FUN name:local visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
FUN LOCAL_FUNCTION name:local visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||||
BLOCK type=kotlin.Int origin=POSTFIX_INCR
|
BLOCK type=kotlin.Int origin=POSTFIX_INCR
|
||||||
|
|||||||
+6
@@ -1312,6 +1312,12 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
|
|||||||
+6
@@ -1312,6 +1312,12 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
|
|||||||
+6
@@ -1324,6 +1324,12 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
|
|||||||
+6
@@ -1324,6 +1324,12 @@ public class IrCompileKotlinAgainstInlineKotlinTestGenerated extends AbstractIrC
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
|
|||||||
+6
@@ -1324,6 +1324,12 @@ public class IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated extends Ab
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
|
|||||||
+6
@@ -1324,6 +1324,12 @@ public class JvmIrAgainstOldBoxInlineTestGenerated extends AbstractJvmIrAgainstO
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
|
|||||||
+6
@@ -1312,6 +1312,12 @@ public class JvmOldAgainstIrBoxInlineTestGenerated extends AbstractJvmOldAgainst
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
|
|||||||
+5
@@ -1007,6 +1007,11 @@ public class IrJsCodegenInlineES6TestGenerated extends AbstractIrJsCodegenInline
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/capture/simpleCapturingInClass.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/simpleCapturingInClass.kt");
|
||||||
|
|||||||
Generated
+5
@@ -1007,6 +1007,11 @@ public class IrJsCodegenInlineTestGenerated extends AbstractIrJsCodegenInlineTes
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/capture/simpleCapturingInClass.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/simpleCapturingInClass.kt");
|
||||||
|
|||||||
Generated
+5
@@ -1007,6 +1007,11 @@ public class JsCodegenInlineTestGenerated extends AbstractJsCodegenInlineTest {
|
|||||||
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt48230_2.kt")
|
||||||
|
public void testKt48230_2() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/capture/kt48230_2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simpleCapturingInClass.kt")
|
@TestMetadata("simpleCapturingInClass.kt")
|
||||||
public void testSimpleCapturingInClass() throws Exception {
|
public void testSimpleCapturingInClass() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/capture/simpleCapturingInClass.kt");
|
runTest("compiler/testData/codegen/boxInline/capture/simpleCapturingInClass.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user