diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2018-07-17 10:23:03 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2018-07-17 12:20:38 -0700 |
| commit | 8adf08c4373f5bdd5bbef9aa4dfd0ca5c4a2eefc (patch) | |
| tree | 8dbf258f67a4c79bd1af2c86d6f907079c676659 /src/test | |
| parent | dd0808dd24bbb351d19b805a9318eb9e105010b2 (diff) | |
| download | rust-8adf08c4373f5bdd5bbef9aa4dfd0ca5c4a2eefc.tar.gz rust-8adf08c4373f5bdd5bbef9aa4dfd0ca5c4a2eefc.zip | |
rustc: Polish off `in_external_macro`
This commit polishes off this new function to compile on newer rustc as well as update and add a suite of test cases to work with this new check for lints.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/lint/auxiliary/lints-in-foreign-macros.rs (renamed from src/test/ui/in-band-lifetimes/ellided-lifetimes-macro-checks.rs) | 17 | ||||
| -rw-r--r-- | src/test/ui/lint/lints-in-foreign-macros.rs | 28 | ||||
| -rw-r--r-- | src/test/ui/lint/lints-in-foreign-macros.stderr | 27 |
3 files changed, 68 insertions, 4 deletions
diff --git a/src/test/ui/in-band-lifetimes/ellided-lifetimes-macro-checks.rs b/src/test/ui/lint/auxiliary/lints-in-foreign-macros.rs index 9e53cbfb3ad..cf8e9c18de3 100644 --- a/src/test/ui/in-band-lifetimes/ellided-lifetimes-macro-checks.rs +++ b/src/test/ui/lint/auxiliary/lints-in-foreign-macros.rs @@ -7,9 +7,18 @@ // <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(nll)] -#![deny(elided_lifetime_in_path)] -fn main() { - format!("foo {}", 22) +#[macro_export] +macro_rules! bar { + () => {use std::string::ToString;} +} + +#[macro_export] +macro_rules! baz { + ($i:item) => ($i) +} + +#[macro_export] +macro_rules! baz2 { + ($($i:tt)*) => ($($i)*) } diff --git a/src/test/ui/lint/lints-in-foreign-macros.rs b/src/test/ui/lint/lints-in-foreign-macros.rs new file mode 100644 index 00000000000..0f9003877cc --- /dev/null +++ b/src/test/ui/lint/lints-in-foreign-macros.rs @@ -0,0 +1,28 @@ +// Copyright 2018 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. + +// aux-build:lints-in-foreign-macros.rs +// compile-pass + +#![warn(unused_imports)] + +#[macro_use] +extern crate lints_in_foreign_macros; + +macro_rules! foo { + () => {use std::string::ToString;} //~ WARN: unused import +} + +mod a { foo!(); } +mod b { bar!(); } +mod c { baz!(use std::string::ToString;); } //~ WARN: unused import +mod d { baz2!(use std::string::ToString;); } //~ WARN: unused import + +fn main() {} diff --git a/src/test/ui/lint/lints-in-foreign-macros.stderr b/src/test/ui/lint/lints-in-foreign-macros.stderr new file mode 100644 index 00000000000..e9f6d3d3815 --- /dev/null +++ b/src/test/ui/lint/lints-in-foreign-macros.stderr @@ -0,0 +1,27 @@ +warning: unused import: `std::string::ToString` + --> $DIR/lints-in-foreign-macros.rs:20:16 + | +LL | () => {use std::string::ToString;} //~ WARN: unused import + | ^^^^^^^^^^^^^^^^^^^^^ +... +LL | mod a { foo!(); } + | ------- in this macro invocation + | +note: lint level defined here + --> $DIR/lints-in-foreign-macros.rs:14:9 + | +LL | #![warn(unused_imports)] + | ^^^^^^^^^^^^^^ + +warning: unused import: `std::string::ToString` + --> $DIR/lints-in-foreign-macros.rs:25:18 + | +LL | mod c { baz!(use std::string::ToString;); } //~ WARN: unused import + | ^^^^^^^^^^^^^^^^^^^^^ + +warning: unused import: `std::string::ToString` + --> $DIR/lints-in-foreign-macros.rs:26:19 + | +LL | mod d { baz2!(use std::string::ToString;); } //~ WARN: unused import + | ^^^^^^^^^^^^^^^^^^^^^ + |
