trait T { fun foo() fun bar() } class C(t :T) : T by t { override fun bar() { throw UnsupportedOperationException() } override fun equals(other: Any?): Boolean { return super.equals(other) } override fun foo() { throw UnsupportedOperationException() } override fun hashCode(): Int { return super.hashCode() } override fun toString(): String { return super.toString() } } // KT-5103