class Outer { val j11: J field = j11 get inner class Inner { val j12: J field = j12 get constructor(j12: J) /* primary */ { super/*Any*/() /* () */ } } constructor(j11: J) /* primary */ { super/*Any*/() /* () */ } } fun test3(f1: Function1, f2: Function1): D<@FlexibleNullability Int?, @FlexibleNullability String?> { return C<@FlexibleNullability String?>(jxx = f1 /*-> @FlexibleNullability J<@FlexibleNullability String?, @FlexibleNullability String?>? */).D<@FlexibleNullability Int?>(jxy = f2 /*-> @FlexibleNullability J<@FlexibleNullability String?, @FlexibleNullability Int?>? */) } fun test4(f: Function1, g: Function1): Inner<@FlexibleNullability Any?, @FlexibleNullability String?> { return Outer<@FlexibleNullability String?>(j11 = f /*-> J<@FlexibleNullability String?, @FlexibleNullability String?> */).Inner<@FlexibleNullability Any?>(j12 = g /*-> J<@FlexibleNullability String?, @FlexibleNullability Any?> */) } fun testGenericJavaCtor1(f: Function1): G<@FlexibleNullability String?> { return G<@FlexibleNullability String?, @FlexibleNullability Int?>(x = f /*-> @FlexibleNullability J<@FlexibleNullability Int?, @FlexibleNullability String?>? */) } fun testGenericJavaCtor2(x: Any) { x as Function1 /*~> Unit */ G<@FlexibleNullability String?, @FlexibleNullability Int?>(x = x /*as Function1 */ /*-> @FlexibleNullability J<@FlexibleNullability Int?, @FlexibleNullability String?>? */) /*~> Unit */ }