blob: b26db329a1213096305440c1b29d5594c9399bee [file] [log] [blame]
interface I
abstract class AbstractTest {
abstract fun normal(): suspend (String) -> Unit
abstract fun extension(): suspend Double.() -> Double
abstract fun bigArity(): suspend (I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I) -> Unit
}
class Test : AbstractTest() {
override fun normal() = ::suspendNormal
override fun extension() = Double::suspendExtension
override fun bigArity() = this::suspendBigArity
private suspend fun suspendNormal(s: String) {}
private suspend fun suspendBigArity(
p01: I, p02: I, p03: I, p04: I, p05: I, p06: I, p07: I, p08: I, p09: I, p10: I,
p11: I, p12: I, p13: I, p14: I, p15: I, p16: I, p17: I, p18: I, p19: I, p20: I,
p21: I, p22: I, p23: I, p24: I, p25: I, p26: I, p27: I, p28: I, p29: I, p30: I
) {}
}
private suspend fun Double.suspendExtension(): Double = this
// method: Test::normal
// jvm signature: ()Lkotlin/reflect/KFunction;
// generic signature: ()Lkotlin/reflect/KFunction<Lkotlin/Unit;>;
// method: Test::extension
// jvm signature: ()Lkotlin/reflect/KFunction;
// generic signature: ()Lkotlin/reflect/KFunction<Ljava/lang/Double;>;
// method: Test::bigArity
// jvm signature: ()Lkotlin/reflect/KFunction;
// generic signature: ()Lkotlin/reflect/KFunction<Lkotlin/Unit;>;