Rust: #! [allow (unknown_lints)] não funciona se houver um lint desconhecido no mesmo nível desde nightly-2017-08-11-x86_64-unknown-linux-gnu

Criado em 11 ago. 2017  ·  3Comentários  ·  Fonte: rust-lang/rust

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:

  1. clone https://github.com/overvenus/poc.git
  2. substituição de rustup definida todas as noites-11/08/2017
  3. teste de carga

Este é um comportamento esperado ou um bug? Obrigado!

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

Comentários muito úteis

Todos 3 comentários

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.

Esta página foi útil?
0 / 5 - 0 avaliações