These files contain data for declarations of standard ("built-in") Kotlin classes that are not compiled into .class
files, but rather are mapped to existing types on the platform (in this case, JVM). For example, kotlin/kotlin.kotlin_builtins
contains information for non-physical classes in the kotlin
package: Int
, String
, Enum
, Annotation
, Collection
, etc.
When using these files, there are two main scenarios:
1) The compiler searches for them from kotlin-runtime
in the classpath to determine which inline declarations are available.
2) The reflection library ( kotlin-reflect
) downloads these files as resources to provide the ability to reflect embedded ads. For example, String::class.members
returns all members of the kotlin.String
class in the same way that the Kotlin compiler sees these members (despite the fact that there is no kotlin/String.class
, and it was deleted before java.lang.String
in bytecode)).
The first paragraph is clearly not applicable in your case. And if you do not use reflection of built-in classes, I think that it is possible to completely exclude .kotlin_builtins
files from the resulting banner.
source share