Rust: #! [allow (unknown_lints)] не работает, если есть неизвестный линт на том же уровне с nightly-2017-08-11-x86_64-unknown-linux-gnu

Созданный на 11 авг. 2017  ·  3Комментарии  ·  Источник: rust-lang/rust

Следующий фрагмент отлично работает до nightly-2017-08-11-x86_64-unknown-linux-gnu

#![allow(unknown_lints)]
#![allow(clippy)]

но теперь он сообщает предупреждение:

warning: unknown lint: `clippy`
 --> /home/poc/src/../a/b.rs:2:10
  |
2 | #![allow(clippy)]
  |          ^^^^^^
  |
  = note: #[warn(unknown_lints)] on by default

Действия по воспроизведению:

  1. клон https://github.com/overvenus/poc.git
  2. набор переопределения rustup nightly-2017-08-11
  3. проверка груза

Это ожидаемое поведение или ошибка? Спасибо!

C-bug T-compiler regression-from-stable-to-nightly

Самый полезный комментарий

Я открыл для этого PR на https://github.com/rust-lang/rust/pull/43841

Все 3 Комментарий

cc @alexcrichton - вероятно, связано с новой реализацией lint

Да, это было вызвано https://github.com/rust-lang/rust/pull/43522. Ошибка в этой строке кода . Проверка того, входит ли allow_lints в область видимости, не проверяет текущий набор подключаемых атрибутов.

Например, это не предупреждает:

#![allow(unknown_lints)]

#[allow(clippy)]
fn main() {}

но это предупреждает:

#![allow(unknown_lints)]
#![allow(clippy)]

fn main() {}

(как вы заметили)

Исправление состоит в том, чтобы просто принять во внимание локальную переменную specs которая имеет собранный до этого момента набор атрибутов lint.

Я открыл для этого PR на https://github.com/rust-lang/rust/pull/43841

Была ли эта страница полезной?
0 / 5 - 0 рейтинги