Какие аннотации Scala изменяют сообщения компилятора?

Я знаю о двух:

  • @deprecated (" используйте вместо этого blabla ") используется для добавления объяснения к предупреждению, выводимому компилятором, когда аннотированное определение используется в клиентском коде.
  • @implicitNotFound (msg = "более содержательное объяснение") используется для вывода дополнительного сообщения об ошибке, когда неявный тип аннотированного определения не может быть найден. Глядя на CanBuildFrom , msg может содержать заполнители типа $ {A} , если A - имя параметра типа аннотированного типа, который заполняется компилятором с фактический ожидаемый тип, например:

     @implicitNotFound (msg = "Невозможно создать коллекцию типа $ {To} с элементами типа $ {Elem} на основе коллекции типа $ {To}.")
    trait CanBuildFrom [-From, -Elem, + To] {...}
    

Существуют ли другие подобные аннотации?

17
задан Jean-Philippe Pellet 10 December 2010 в 15:46
поделиться