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