Clojure - Как проверить правильность подсказок типа в протоколах? - PullRequest
4 голосов
/ 08 февраля 2011

Как проверить, правильны ли введенные мной в код подсказки типа?

Похоже, даже если я введу неверные подсказки типа, все работает без предупреждений:

=> (defprotocol Qqq (^Qwerty qqq [this ^String q]))
Qqq
=> (qqq (reify Qqq (qqq [this q] (+ q 5))) 7)
12

1 Ответ

4 голосов
/ 08 февраля 2011

Насколько я помню, подсказки типа не используются сейчас, но могут быть использованы в будущем ... Вот цитата из официального описания на clojure.org


поля могут иметь подсказки типа и могут быть примитивными:

  • обратите внимание, что в настоящее время подсказка типа не примитивного типа не будет использоваться для ограничения типа поля или аргумента конструктора, но будет использоватьсядля оптимизации его использования в методах класса
  • планируется ограничение типа поля и конструктора arg
...