O seguinte snippet funciona bem antes de nightly-2017-08-11-x86_64-unknown-linux-gnu
#![allow(unknown_lints)]
#![allow(clippy)]
mas agora ele relata um aviso:
warning: unknown lint: `clippy`
--> /home/poc/src/../a/b.rs:2:10
|
2 | #![allow(clippy)]
| ^^^^^^
|
= note: #[warn(unknown_lints)] on by default
Passos para reproduzir:
Este é um comportamento esperado ou um bug? Obrigado!
cc @alexcrichton - provavelmente relacionado à nova implementação de lint
Sim, isso foi causado por https://github.com/rust-lang/rust/pull/43522. O bug está nesta linha de código . A verificação se allow_lints
está no escopo não está verificando o conjunto atual de atributos sendo linted.
Por exemplo, isso não avisa:
#![allow(unknown_lints)]
#[allow(clippy)]
fn main() {}
mas isso avisa:
#![allow(unknown_lints)]
#![allow(clippy)]
fn main() {}
(como você notou)
A correção é apenas levar em conta a variável local specs
que tem o conjunto de atributos lint coletado até aquele ponto.
Abri um PR para isso em https://github.com/rust-lang/rust/pull/43841
Comentários muito úteis
Abri um PR para isso em https://github.com/rust-lang/rust/pull/43841