// !LANGUAGE: +NewInference // FILE: samConversionToGeneric.kt fun test1() = J { x -> x } fun test2() = J { x: String -> x } fun test3() = H.bar { x: String -> x } fun test4(a: Any) { a as J H.bar(a) } fun test5(a: Any) { a as (String) -> String H.bar(a) } fun test6(a: (T) -> T) { H.bar(a) } fun test7(a: Any) { a as (T) -> T H.bar(a) } fun test8(efn: String.() -> String) = J(efn) fun test9(efn: String.() -> String) { H.bar(efn) } fun test10(fn: (Int) -> String) { H.bar2x(fn) } // FILE: J.java public interface J { T foo(T x); } // FILE: J2.java public interface J2 { T1 foo(T2 x); } // FILE: J2X.java public interface J2X extends J2 { } // FILE: H.java public class H { public static void bar(J j) {} public static void bar2x(J2X j2x) {} }