Какова самая короткая нотация для определения оператора как псевдонима метода в Scala?

Учитывая общий Метод register ниже. Я хотел бы определить оператор : = как символический псевдоним.

def register[Prop <: Property[_]](prop: Prop): Prop

@inline
final def :=[Prop <: Property[_]] = register[Prop] _

Изначально я хотел написать что-то вроде этого:

val := = register _

Но это дает мне сигнатуру функции Nothing => Nothing . Моя следующая попытка заключалась в том, чтобы параметризовать его с помощью типа Prop , но это, по-видимому, работает только в том случае, если я сделаю его def , который может принимать параметры типа и передавать их дальше.

В идеале я хотел бы опустить аннотацию @inline , но я не уверен, какой объектный код делает из нее компилятор Scala.

Самая важная моя цель состоит в том, чтобы метод : = не дублировал все части сигнатуры метода register , кроме имени, а затем просто позволял бывшему делегату к последнему.

7
задан Benjamin 5 November 2013 в 11:41
поделиться