Где я могу указать предупреждение о отражении в файле clj? - PullRequest
5 голосов
/ 17 декабря 2010

Я пытаюсь использовать предупреждение о отражении в файле clj.Когда я пишу:

(set! warn-on-reflection true)

: после объявления ns я получаю ошибку:

 java.lang.Exception: Unable to resolve symbol: warn-on-reflection in this context 

Кто-нибудь знает почему?

Ответы [ 2 ]

16 голосов
/ 17 декабря 2010

Глобальные переменные обычно именуются именами, которые начинаются и заканчиваются звездочкой.

(set! *warn-on-reflection* true)

Полагаю, вы скопировали это с форума, который делает такой текст жирным.


Обновление: добавьте эти строки в свой проект leiningen.clj:

  ;; Emit warnings on all reflection calls.
  :global-vars {*warn-on-reflection* true}

https://github.com/technomancy/leiningen/blob/master/sample.project.clj

9 голосов
/ 27 июля 2013

(set! *warn-on-reflection* true), вероятно, путь. Если вы хотите использовать для этого специфичные для lein методы, вот обновленная информация для 2.x:

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

(defproject foo ...
  :global-vars {*warn-on-reflection* true}
  ...)

Или просто периодически запускать lein check, так как это предупредит при отражении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...