Reimplement generation of intrinsic array constructors

Instead of relying on a class from the runtime (which thus cannot be deleted
from the runtime ever), rely on a class from the compiler instead. This has a
minor downside: that class is compiled by the bootstrap compiler, so if codegen
of 'for'-loops or something else used in that class changes, it won't
immediately have an effect on a local working copy (on the build server
everything will be fine because of a 2-step building process).

In the future it may make sense to just manually create all the bytecode
instructions and dump them into a MethodNode. Currently the amount of work
needed for that seems rather significant
This commit is contained in:
Alexander Udalov
2016-01-27 03:28:35 +03:00
parent 0e11aa098f
commit 70e847b794
11 changed files with 253 additions and 192 deletions
+2
View File
@@ -69,6 +69,8 @@ messages/**)
public protected *;
}
-keep class org.jetbrains.kotlin.codegen.intrinsics.IntrinsicArrayConstructorsKt { *; }
-keep class org.jetbrains.org.objectweb.asm.Opcodes { *; }
-keep class org.jetbrains.kotlin.codegen.extensions.** {