ForteScarlet / kotlin-suspend-transform-compiler-plugin

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. 🐱
MIT License
36 stars 3 forks source link

optimize: `override` for synthetic functions #68

Closed ForteScarlet closed 1 month ago

ForteScarlet commented 1 month ago

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 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.

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. 😢