puniverse / quasar

Fibers, Channels and Actors for the JVM
http://docs.paralleluniverse.co/quasar/
Other
4.56k stars 575 forks source link

Support Kotlin default methods regardless of presented annotations #322

Open max-kammerer opened 5 years ago

max-kammerer commented 5 years ago

Kotlin team considers to removed change that was made for https://youtrack.jetbrains.com/issue/KT-6930 with annotation generation on default methods ('foo$default', https://github.com/JetBrains/kotlin/commit/fd4946e552517cebf2b1361e641fc718ab1c46b6#diff-c4b3d1cabf0518d85f061842d839bd32R617).

All annotations would be removed from $default methods, it can break quasar instrumentation.

Default companion for function 'foo' with N parameter generated by next template:

fun foo(param1: Type1...., paramN: TypeN): ResultType

[static] [synthetic flag] [bridge flag]? fun foo$default(param1: Type1...paramN: typeN, mask0:Int..mask[N-1/32]: Int, object: Object)

Sample bytecode

public final class Foo {

  public final foo(Ljava/lang/String;Ljava/lang/String;)V

  public static synthetic foo$default(LFoo;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
}

Bridge flag was generated prior Kotlin 1.3

woggioni commented 4 years ago

any update on this?