I’m working on bazel rules for Kotlin. Bazel (and buck) creates interface jars for Java code representing the ABI of a Jar. This doesn’t work for Kotlin Jars with inline functions as they get pruned out.
bazel ijar implementation and design doc
I need some advice on the simplest way of creating an IJAR for Kotlin.
I don’t know how the inline function code is represented in a JAR. Is the source retained in some manifest file, is it encoded in byte code ? If it’s the first case PerhapsI could find a way of including it in the IJAR.
I think it would be best if the compiler could produce an ijar for a compile operation – this would be a future proof solution for use-cases where Kotlin needs to do other advanced stuff that might affect the ABI of a jar (macros like Scala). Could JB implement a plugin or compiler switch to produce an ijar ?