Rust: #![allow(unknown_lints)] funktioniert nicht, wenn seit nightly-2017-08-11-x86_64-unknown-linux-gnu ein unbekannter Lint auf der gleichen Ebene vorhanden ist

Erstellt am 11. Aug. 2017  ·  3Kommentare  ·  Quelle: rust-lang/rust

Das folgende Snippet funktioniert einwandfrei vor nightly-2017-08-11-x86_64-unknown-linux-gnu

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

aber jetzt meldet es eine Warnung:

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

Schritte zum Reproduzieren:

  1. Klon https://github.com/overvenus/poc.git
  2. rustup override set nightly-2017-08-11
  3. Ladungstest

Ist das ein erwartetes Verhalten oder ein Fehler? Dankeschön!

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

Hilfreichster Kommentar

Ich habe dazu eine PR geöffnet unter https://github.com/rust-lang/rust/pull/43841

Alle 3 Kommentare

cc @alexcrichton -- wahrscheinlich im Zusammenhang mit der neuen Lint-Implementierung

Ja, dies wurde durch https://github.com/rust-lang/rust/pull/43522 verursacht dieser Codezeile . Die Prüfung, ob allow_lints im Gültigkeitsbereich liegt, prüft nicht den aktuellen Satz von linted Attributen.

Dies warnt zum Beispiel nicht:

#![allow(unknown_lints)]

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

aber das warnt:

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

fn main() {}

(wie Sie bemerkt haben)

Die Lösung besteht darin, nur die lokale Variable specs zu berücksichtigen, die die bis dahin gesammelten lint-Attribute enthält.

Ich habe dazu eine PR geöffnet unter https://github.com/rust-lang/rust/pull/43841

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen