65b0554143
Warning or error messages set via a lint group attribute (e.g. `#[deny(warnings)]`) should still make it clear which individual lint (by name) was triggered, similarly to how we include "on by default" language for default lints. This—and, while we're here, the existing "on by default" language—can be tucked into a note rather than cluttering the main error message. This occasions the slightest of refactorings (we now have to get the diagnostic-builder with the main message first, before matching on the lint source). This is in the matter of #36846.
32 lines
986 B
Rust
32 lines
986 B
Rust
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
|
// file at the top-level directory of this distribution and at
|
|
// http://rust-lang.org/COPYRIGHT.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
// option. This file may not be copied, modified, or distributed
|
|
// except according to those terms.
|
|
|
|
#![feature(rustc_attrs)]
|
|
#![allow(unused)]
|
|
|
|
pub struct Foo;
|
|
|
|
mod bar {
|
|
struct Foo;
|
|
|
|
mod baz {
|
|
use *; //~ NOTE `Foo` could refer to the name imported here
|
|
use bar::*; //~ NOTE `Foo` could also refer to the name imported here
|
|
fn f(_: Foo) {}
|
|
//~^ WARN `Foo` is ambiguous
|
|
//~| WARN hard error in a future release
|
|
//~| NOTE see issue #38260
|
|
//~| NOTE #[warn(legacy_imports)] on by default
|
|
}
|
|
}
|
|
|
|
#[rustc_error]
|
|
fn main() {} //~ ERROR compilation successful
|