JVM_IR: add $assertionsDisabled when an inlined function uses it

NOTE: jvmCrossinlineLambdaDeclarationSite.kt is muted because the
inliner does not remap references to an anonymous object's parent
class after regenerating it. Unlike the JVM backend, JVM_IR uses the
top level named class' assertion status for all inner classes. (The
test used to pass because the lambda in `inline fun call` read the
`$assertionsDisabled` field of `CrossinlineLambdaContainer`, which
was not reloaded after changing the assertion status of package `test`.)
This commit is contained in:
pyos
2019-10-14 10:35:41 +02:00
committed by Ilmir Usmanov
parent e89aabbba1
commit 847e287bd6
18 changed files with 333 additions and 38 deletions
@@ -665,10 +665,25 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo
runTest("compiler/testData/codegen/boxInline/assert/jvmCrossinlineLambdaDeclarationSite.kt");
}
@TestMetadata("jvmCrossinlineLambdaDeclarationSiteOnly.kt")
public void testJvmCrossinlineLambdaDeclarationSiteOnly() throws Exception {
runTest("compiler/testData/codegen/boxInline/assert/jvmCrossinlineLambdaDeclarationSiteOnly.kt");
}
@TestMetadata("jvmCrossinlineSAMDeclarationSite.kt")
public void testJvmCrossinlineSAMDeclarationSite() throws Exception {
runTest("compiler/testData/codegen/boxInline/assert/jvmCrossinlineSAMDeclarationSite.kt");
}
@TestMetadata("jvmDoubleInline.kt")
public void testJvmDoubleInline() throws Exception {
runTest("compiler/testData/codegen/boxInline/assert/jvmDoubleInline.kt");
}
@TestMetadata("jvmInlineUsedAsNoinline.kt")
public void testJvmInlineUsedAsNoinline() throws Exception {
runTest("compiler/testData/codegen/boxInline/assert/jvmInlineUsedAsNoinline.kt");
}
}
@TestMetadata("compiler/testData/codegen/boxInline/builders")