// !WITH_NEW_INFERENCE // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE fun test() { val a1: Array Double> = arrayOf(Double::plus, Double::minus) val a2: Array Double> = arrayOf(Double::plus, Double::minus) val a3: Array Double> = arrayOf(Double::plus, Double::minus) val a4: Array Double> = arrayOf(Int::plus, Double::minus) val a5: Array Double> = arrayOf(Double::plus, Int::minus) } fun foo(x: Int) {} fun foo(y: String) {} fun bar(x: T, f: (T) -> Unit) {} fun test2() { bar(1, ::foo) bar("", ::foo) bar(1.0, ::foo) }