Избегайте предупреждения при компиляции: «предложения с одинаковым именем и арностью (числом аргументов) должны быть сгруппированы вместе» - PullRequest
1 голос
/ 09 марта 2020

В настоящее время я работаю над проектом Elixir, скомпилированным с Mix, с большим количеством clauses with the same name and arity (number of arguments) should be grouped together предупреждений. Проблема в том, что выбор состоит в том, чтобы не группировать его (по логическим причинам), поэтому я пытаюсь найти способ заставить этот тип предупреждения молчать.

Я провел небольшое исследование и узнал о * Атрибут 1004 *, который позволяет молчать некоторые предупреждения, например :nowarn_unused_vars, но, поскольку «группа с тем же именем и арностью» предупреждает, что швы являются предупреждением эликсира, таким образом он не может молчать, поэтому я ищу другое решение без необходимости перемещать функции.

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 11 марта 2020

Я полагаю, что ответ заключается в том, что вы не можете.

Вспоминая дискуссию 2015 года в группе Google Elixir: Как отключить указанные c предупреждения .

За Хосе:

Честно говоря, выпуск / развертывание кода с предупреждениями не вариант в моей книге. Причина, по которой мы генерируем предупреждения вместо ошибок, заключается в том, что нет причин, по которым ваша компиляция не будет работать сразу после установки, лучше собирать предупреждения и показывать их для всех файлов, а не расстраивать процесс исправления одной ошибки только для другой. один, чтобы показать. Вот почему мы не планируем предоставлять опции для отключения предупреждений: они должны быть исправлены, даже если они не содержат ошибок заранее.

В потоке был предложен компромисс, может работать на вас и одновременно сохранять сгруппированные функции:

  def event(:x, var), do: one_thing(var) 
  def event(:y, var), do: another_thing(var) 
  def event(:z, var), do: something_else_entirely(var) 

Удачи!

...