Como posso suprimir o aviso "atribuição à variável livre" ao compilar um byte um arquivo emacs lisp?
Na verdade, estou principalmente interessado em suprimi-lo para um buffer específico ao usar o flycheck, mas entendo que isso está apenas passando para o compilador de bytes.
Também seria bom obter uma lista de todos os avisos / erros que podem ser suprimidos.
ATUALIZAÇÃO :
Para fins de completude, permita-me esclarecer que existem muitas razões (independentes do idioma) para desativar os avisos do compilador. Alguns exemplos: para facilitar a transição do código legado para uma estrutura imposta por fiapos, para que arquivos e receitas de rascunho sejam executados em um contexto ativo, para remover ruídos enquanto corrige problemas de prioridade mais alta ou porque o compilador está errado.
fonte
defvar
s faltando ourequire
s faltando .(defvar the-variable)
. Isso silencia o aviso apenas para essa variável, para que você ainda possa obtê-lo para outras variáveis.Respostas:
Para o benefício de leitores sem noção que chegam aqui, permita-me uma pequena digressão para dizer que esses avisos geralmente apontam para problemas reais de código (e quando não o fazem, você pode suprimi-los por variável) para que as pessoas pesquisem o que significa antes de desativá-los.
Obviamente, não tenho dúvidas de que você sabe por que precisa desativá-lo, então a resposta está abaixo.
A resposta
Para desativar este (ou outro) aviso, você precisará definir o valor de
byte-compile-warnings
. Você pode fazer isso como uma variável local do arquivo adicionando o seguinte fragmento ao final do arquivo.Você também pode definir isso globalmente.
Você pode substituir
(not free-vars)
por(not free-vars callargs unresolved)
outros avisos que desejar suprimir. A lista completa de avisos que podem ser incluídos / suprimidos é encontrada na documentação da variável (abaixo).fonte