@CompileTimeCalculation class A(val a: Int) { fun foo(): Int { return a } suspend fun baz(): Int { return a } } const val functionName = A::foo.name const val functionInvoke = A::foo.invoke(A(1)) const val functionWithReceiverName = A(2)::foo.name const val functionWithReceiverInvoke = A(2)::foo.invoke() // THIS IS WRONG, suspend fun must be called from coroutine ot another suspend function. // It is used here just for test purposes. const val suspendFunctionInvoke = A::baz.invoke(A(3))