Yeah, the KEEP says contracts are pretty much binary stable
• Syntax for declaring contracts
(i.e. Contracts DSL) is unstable at the moment, and it's possible that it will be completely changed in the future.
◦ It means that writing your own contracts isn't suited for production usage yet
• Binary representation
(in Kotlin Metadata) is stable enough and actually is a part of stdlib already. It won't be changed without a graceful migration cycle.
◦ It means that you can depend on binary artifacts with contracts (e.g. stdlib) with all usual compatibility guarantees
, as usual, may be changed only in exceptional circumstances and only after graceful migration cycle
◦ It means that you can rely on the analysis made with the help of contracts, as it won't get broken suddenly