Как я могу подавить предупреждение "присваивание свободной переменной" при байтовой компиляции файла lisp emacs?
Я на самом деле в основном заинтересован в подавлении его для определенного буфера при использовании flycheck, но я понимаю, что это просто передаётся байтовому компилятору.
Также было бы хорошо получить список всех предупреждений / ошибок, которые могут быть подавлены.
ОБНОВЛЕНИЕ :
ради полноты позвольте мне пояснить, что есть много (не зависящих от языка) причин для отключения предупреждений компилятора. Некоторые примеры: для облегчения перехода от унаследованного кода в платформу с принудительным использованием lint, для «чистых» файлов и рецептов, запускаемых в реальном контексте, для устранения шума при исправлении проблем с более высоким приоритетом или из-за неправильного компилятора.
источник
defvar
или отсутствиеrequire
s.(defvar the-variable)
. Это заставляет замолчать предупреждение только для этой переменной, так что вы все равно можете получить его для других переменных.Ответы:
В интересах прибывающих сюда невежественных читателей, позвольте мне сделать небольшое отступление, чтобы сказать, что эти предупреждения обычно указывают на реальные проблемы с кодом (а если их нет, вы можете подавлять их для каждой переменной), поэтому люди должны исследовать, что они значит, прежде чем отключить их.
Конечно, я не сомневаюсь, что вы знаете, почему вам нужно отключить его, поэтому ответ ниже.
Ответ
Чтобы отключить это (или другое) предупреждение, вам нужно установить значение
byte-compile-warnings
. Вы можете сделать это как локальную переменную файла, добавив следующий фрагмент в конец файла.Вы также можете установить это глобально.
Вы можете заменить
(not free-vars)
с(not free-vars callargs unresolved)
и в зависимости от того других предупреждений вы хотите подавить. Полный список предупреждений, которые могут быть включены / подавлены, находится в строке документации переменной (ниже).источник