When will contracts be final?

Contracts introduced in Kotlin 1.3 (released 2018) are still “experimental”. What should happen before contracts will be final? Is there a planned release to make them generally available?

The binary side of contracts is already stable. This means that any libraries that you release with contracts will be useable in the future.
The issue with a stable release for contracts is that the API for it is not yet finished. There are a lot of issues that have no design (eg. inheritance). Maybe there are things in the work for this but I’m not aware of it. Also I don’t think they have mentioned any release they target.
That said, as long as you are ok with reworking how you specify contracts you can already use them. Their functionality is stable, just the API is not.

3 Likes

We don’t plan to improve or stabilize contracts in current compiler, so all changes are postponed to release new compiler frontend, but I can’t say when this release will be

4 Likes

Out of curiosity, will contracts ever be checked statically (compile-time)? or is the plan to keep them checked dynamically (run-time)?