About 1.3-M1 there was this statement >> To ...
# coroutines
n
About 1.3-M1 there was this statement
> To ensure a smooth migration, we’ll add a compatibility layer in 1.3 and the classes for experimental coroutines will still remain in the standard library. The compiled Kotlin/JVM code that uses experimental coroutines from 1.1 or 1.2 would still continue to work in Kotlin 1.3.
If I’m reading this libs complied experimental coroutines should still work. However that doesn’t seem to be the case. Is there a compiler flag that needs to be set or a separate artifact to be included that I’m not aware of
🤔 1
d
@Vsevolod Tolstopyatov [JB] @elizarov can you please help with the above question? Thanks in advance.
v
could you please specify what’s the problem? You can’t use older kotlinx.coroutines versions without eap prefix with Kotlin 1.3?
n
@Vsevolod Tolstopyatov [JB] The situation is the following: there are 3rd party libraries we are using that use the experimental version of coroutines. We would like to bump to kotlin 1.3.0. When we bump and make changes on our end to use the non experimental version, the project compiles but crashes at runtime due to classes of the experimental implementation not being present. Maybe I have misunderstood what was written when 1.3-M1 came out, but I though that this case would be covered. Code will not compile with usage of experimental implementation using 1.3.0 but pre compiled code that uses experimental would still work (3rd party lib)
v
This is strange. Is it possible to extract small self-contained example from your problem?
Also, do you have two versions of
kotlinx.coroutines
and Kotlin in a classpath?
n
@Vsevolod Tolstopyatov [JB] I have attached a small sample. It contains a dumbed down lib and an Android app project.
The library jar is copied over to app/libs/tacker.jar
Not quite clear on the classpath question 🤔 . If the artifact and group id are the same, gradle will pick the latest, thus only one version is present for both kotlin and coroutines