Убедитесь, что параметрический тип имеет сопутствующий объект
Я хотел бы сделать что-то вроде этого (и, пожалуйста, не спрашивайте почему):
trait A[T /* tell that there exists companion for T */] {
def f = T.g
}
Можно ли этого добиться?
1 ответ
Решение
Это невозможно из коробки. Вам придется использовать решение на основе макросов. Я случайно опубликовал суть такого решения некоторое время назад.
Вы можете использовать это так:
def getCompanion[T: HasCompanion] = HasCompanion[T].companion
Однако вы не можете использовать границы контекста для параметра типа признака.