// FIR_IDENTICAL // !CHECK_TYPE // FILE: A.java public class A { public static int foo(Runnable r) { return 0; } public static String foo(Object r) { return null;} public static int bar(Runnable r) { return 1; } public static String bar(CharSequence r) { return null; } } // FILE: 1.kt fun fn() {} fun x(r: Runnable) { A.foo(::fn) checkType { _() } A.foo {} checkType { _() } A.foo(null) checkType { _() } A.foo(Runnable { }) checkType { _() } A.foo(r) checkType { _() } A.foo(123) checkType { _() } A.foo("") checkType { _() } A.bar(::fn) checkType { _() } A.bar {} checkType { _() } A.bar(r) checkType { _() } A.bar(null) A.bar(null as Runnable?) checkType { _() } A.bar(null as CharSequence?) checkType { _() } A.bar("") checkType { _() } A.bar(123) }