Учитывая общий Метод register
ниже. Я хотел бы определить оператор : =
как символический псевдоним.
def register[Prop <: Property[_]](prop: Prop): Prop
@inline
final def :=[Prop <: Property[_]] = register[Prop] _
Изначально я хотел написать что-то вроде этого:
val := = register _
Но это дает мне сигнатуру функции Nothing => Nothing
. Моя следующая попытка заключалась в том, чтобы параметризовать его с помощью типа Prop
, но это, по-видимому, работает только в том случае, если я сделаю его def
, который может принимать параметры типа и передавать их дальше.
В идеале я хотел бы опустить аннотацию @inline
, но я не уверен, какой объектный код делает из нее компилятор Scala.
Самая важная моя цель состоит в том, чтобы метод : =
не дублировал все части сигнатуры метода register
, кроме имени, а затем просто позволял бывшему делегату к последнему.