// !CHECK_TYPE // !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE class A { fun foo1(x: E) = x fun foo2(x: E) = x fun bar(x: F, y: F?, z: Z, w: W) { foo1(x) val x1 = foo1(x) x1.checkType { _() } foo2(x) val x2 = foo2(x) x2.checkType { _() } foo1<F?>(y) foo1(y) foo2(y) val x3 = foo2(y) x3.checkType { _() } foo1(y) foo2(y) foo1(z) val x4 = foo1(z) x4.checkType { _() } foo2(z) val x5 = foo2(z) x4.checkType { _() } foo1<W>(w) foo1(w) foo2(w) val x6 = foo2(w) x6.checkType { _() } foo1<W>(w) } }