// !CHECK_TYPE // !LANGUAGE: +CallableReferencesToClassMembersWithEmptyLHS import kotlin.reflect.KFunction0 fun expectFunction0Unit(f: () -> Unit) = f fun expectFunction0String(f: () -> String) = f fun expectFunction1Unit(f: (A) -> Unit) = f fun expectFunction1String(f: (A) -> String) = f fun foo(): String = "" class A { fun foo() {} fun main() { val x = ::foo checkSubtype>(x) expectFunction0Unit(x) expectFunction0String(x) expectFunction1Unit(x) expectFunction1String(x) expectFunction0Unit(::foo) expectFunction0String(::foo) expectFunction1Unit(::foo) expectFunction1String(::foo) } }