Допустим, у меня есть следующие интерфейсы:
interface A
interface B
interface C
Я хочу создать класс с несколькими верхними границами для типов A и B:
class First<T>(val t: T) where T : A, T : B
Я также хочу использовать делегирование для типа C:
class Second(val c: C) : C by c
Мой вопрос: как мне объединить оба в одном объявлении класса?
Я пробовал это:
class Third<T>(val t: T, val c: C) where T : A, T : B, C by c // syntax error: "Expecting : before the upper bound"
А это:
class Third<T>(val t: T, val c: C) : C by c where T : A, T : B // unresolved reference where