Rust: #![allow(unknown_lints)] ne fonctionne pas s'il y a un lint inconnu au même niveau depuis nightly-2017-08-11-x86_64-unknown-linux-gnu

Créé le 11 août 2017  ·  3Commentaires  ·  Source: rust-lang/rust

L'extrait suivant fonctionne bien avant nightly-2017-08-11-x86_64-unknown-linux-gnu

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

mais maintenant, il signale un avertissement :

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

Étapes à reproduire :

  1. cloner https://github.com/overvenus/poc.git
  2. jeu de remplacement de rouille tous les soirs-2017-08-11
  3. essai de cargaison

Est-ce un comportement attendu ou un bug ? Merci!

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

Commentaire le plus utile

J'ai ouvert un PR pour cela à https://github.com/rust-lang/rust/pull/43841

Tous les 3 commentaires

cc @alexcrichton -- probablement lié à la nouvelle implémentation de lint

Oui, cela a été causé par https://github.com/rust-lang/rust/pull/43522. Le bug est sur cette ligne de code . La vérification pour savoir si allow_lints est dans la portée ne vérifie pas l'ensemble actuel d'attributs en cours de lint.

Par exemple, cela n'avertit pas :

#![allow(unknown_lints)]

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

mais ceci avertit:

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

fn main() {}

(comme vous l'avez remarqué)

Le correctif consiste simplement à prendre en compte la variable locale specs qui a collecté l'ensemble d'attributs de charpie jusqu'à ce point.

J'ai ouvert un PR pour cela à https://github.com/rust-lang/rust/pull/43841

Cette page vous a été utile?
0 / 5 - 0 notes