A Kotlin compiler plugin for transforming suspend functions to platform-compatible non-suspend functions, such as the JVM Blocking API and CompletableFuture or JS Promise, etc. 🐱
In the previous K2 mode, the override of a synthesized function always came directly from the original function.
Now, if the original function is override, a judgment is made based on all of its parent functions as to whether the synthetic function should also add override.
In the case of JvmBlocking, it is assumed that the synthetic function should be override if there are any parent functions that also contain this annotation, and the final function name and asProperty are also the same.
Although some other optimizations have been made in addition to judging directly from the original function, they are less recommended ways of using it and may be flawed, so I won't express them.
nothingOne complaint I have to make is that implementing inheritance relationships between judgment functions in the plugin is quite a bit more complicated than I thought it would be. 😢
resolve #67
In the previous K2 mode, the
override
of a synthesized function always came directly from the original function.Now, if the original function is
override
, a judgment is made based on all of its parent functions as to whether the synthetic function should also addoverride
.In the case of
JvmBlocking
, it is assumed that the synthetic function should beoverride
if there are any parent functions that also contain this annotation, and the final function name andasProperty
are also the same.Although some other optimizations have been made in addition to judging directly from the original function, they are less recommended ways of using it and may be flawed, so I won't express them.
nothing
One complaint I have to make is that implementing inheritance relationships between judgment functions in the plugin is quite a bit more complicated than I thought it would be. 😢