class A : Java1, Java2 { constructor() /* primary */ { super/*Java1*/() /* () */ } } class B : Java1, Java2 { constructor() /* primary */ { super/*Java1*/() /* () */ } override fun bar(): T { return CHECK_NOT_NULL(arg0 = null) } override fun foo(a: T) { } } abstract class C : Java2, KotlinInterface2 { constructor() /* primary */ { super/*Any*/() /* () */ } } abstract class D : Java2, KotlinInterface2 { constructor() /* primary */ { super/*Any*/() /* () */ } override fun bar(): T { return CHECK_NOT_NULL(arg0 = null) } override fun foo(a: T) { } override fun foo(a: T) { } } class E : D { constructor() /* primary */ { super/*D*/() /* () */ } override fun bar(): T { return CHECK_NOT_NULL(arg0 = null) } } class F : KotlinClass, Java2 { constructor() /* primary */ { super/*KotlinClass*/() /* () */ } } class G : KotlinClass, Java2 { constructor() /* primary */ { super/*KotlinClass*/() /* () */ } override fun bar(): T { return CHECK_NOT_NULL(arg0 = null) } } class H : Java3, Java2 { constructor() /* primary */ { super/*Java3*/() /* () */ } } class I : Java3, Java2 { constructor() /* primary */ { super/*Java3*/() /* () */ } override fun foo(a: T) { } } class J : Java4 { constructor() /* primary */ { super/*Java4*/() /* () */ } } open class KotlinClass : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } } class L : Java4 { constructor() /* primary */ { super/*Java4*/() /* () */ } override fun foo(a: T) { } } interface KotlinInterface { abstract fun bar(): T abstract fun foo(a: T) } interface KotlinInterface2 { abstract fun bar(): T abstract fun foo(a: T) } fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, l: L) { val k: Int = a.bar() val k3: Any = a.bar() a.foo<@FlexibleNullability Int?>(a = 1) a.foo(a = null) a.foo<@FlexibleNullability Int?>(a = null) a.foo<@FlexibleNullability List?>(a = listOf(element = null)) val k5: Int? = b.bar() val k6: Any = b.bar() b.foo(a = 1) b.foo(a = null) b.foo(a = null) b.foo>(a = listOf(element = null)) val k7: Int? = c.bar() val k8: Any = c.bar() c.foo(a = 1) c.foo(a = null) c.foo(a = null) c.foo>(a = listOf(element = null)) val k9: Int? = d.bar() val k10: Any = d.bar() d.foo(a = 1) d.foo(a = null) d.foo(a = null) d.foo>(a = listOf(element = null)) val k11: Int? = e.bar() val k12: Any = e.bar() e.foo(a = 1) e.foo(a = null) e.foo(a = null) e.foo>(a = listOf(element = null)) val k13: Int? = f.bar() val k14: Any = f.bar() f.foo<@FlexibleNullability Int?>(a = 1) f.foo(a = null) f.foo<@FlexibleNullability Int?>(a = null) f.foo<@FlexibleNullability List?>(a = listOf(element = null)) val k15: Int? = g.bar() val k16: Any = g.bar() g.foo<@FlexibleNullability Int?>(a = 1) g.foo(a = null) g.foo<@FlexibleNullability Int?>(a = null) g.foo<@FlexibleNullability List?>(a = listOf(element = null)) val k17: Int? = h.bar() val k18: Any = h.bar() h.foo<@FlexibleNullability Int?>(a = 1) h.foo(a = null) h.foo<@FlexibleNullability Int?>(a = null) h.foo<@FlexibleNullability List?>(a = listOf(element = null)) val k19: Int? = i.bar() val k20: Any = i.bar() i.foo(a = 1) i.foo(a = null) i.foo(a = null) i.foo>(a = listOf(element = null)) val k21: Int? = j.bar<@FlexibleNullability Int?>() val k22: Any = j.bar<@FlexibleNullability Any?>() /*!! Any */ j.foo<@FlexibleNullability Int?>(a = 1) j.foo(a = null) j.foo<@FlexibleNullability Int?>(a = null) j.foo<@FlexibleNullability List?>(a = listOf(element = null)) l.foo(a = 1) l.bar<@FlexibleNullability Int?>() /*~> Unit */ }