If there are cases when you don’t want it, then it should be opt-out. Why then it is a keyword, and not an annotation, like @JvmField
and such?
Also, I don’t understand the point about reflection and interop. As far as I can see, if you declare a const val
in a file or an object, the corresponding generated JVM object will have a static final
field. Could you expand on that a bit more?