// !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_PARAMETER @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") import kotlin.internal.Exact class Inv(val arg: I) class InvExact(val arg: @kotlin.internal.Exact E) interface Base class Derived : Base class Other : Base fun id(arg: K): K = arg fun test1(arg: Derived) { id>(Inv(arg)) id>(InvExact(arg)) } fun Inv<@Exact R>.select(first: R, second: R): R = TODO() fun test2(derived: Derived, other: Other) { Inv(derived).select(derived, other) }