class A interface I0A> interface I1 where T : A interface I2A> where T : A fun A> foo0() {} fun foo1() where E : A {} fun A> foo2() where E : A {} val A> E.p1: Int get() = 1 val E.p2: Int where E : A get() = 1 val A> E.p3: Int where E : A get() = 1 // See KT-8200 interface X public class EnumAttributeX>(val klass: Class) where T : Enum