diff --git a/src/test/compile-fail/feature-gate-tool_lints.rs b/src/test/compile-fail/feature-gate-tool_lints.rs new file mode 100644 index 00000000000..c311eb7ed7a --- /dev/null +++ b/src/test/compile-fail/feature-gate-tool_lints.rs @@ -0,0 +1,12 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[warn(clippy::assign_ops)] //~ ERROR scoped lint `clippy::assign_ops` is experimental +fn main() {} diff --git a/src/test/compile-fail/tool_lints.rs b/src/test/compile-fail/tool_lints.rs new file mode 100644 index 00000000000..ea1efab4cb6 --- /dev/null +++ b/src/test/compile-fail/tool_lints.rs @@ -0,0 +1,18 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// Don't allow tool_lints, which aren't scoped + +#![feature(tool_lints)] +#![deny(unknown_lints)] + +#![deny(clippy)] //~ ERROR: unknown lint: `clippy` + +fn main() {} diff --git a/src/test/compile-fail/unknown-lint-tool-name.rs b/src/test/compile-fail/unknown-lint-tool-name.rs new file mode 100644 index 00000000000..173803d6030 --- /dev/null +++ b/src/test/compile-fail/unknown-lint-tool-name.rs @@ -0,0 +1,16 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(tool_lints)] + +#![deny(foo::bar)] //~ ERROR an unknown tool name found in scoped lint: `foo::bar`. + +#[allow(foo::bar)] //~ ERROR an unknown tool name found in scoped lint: `foo::bar`. +fn main() {} diff --git a/src/test/run-pass/tool_lints.rs b/src/test/run-pass/tool_lints.rs new file mode 100644 index 00000000000..24ec43b12f6 --- /dev/null +++ b/src/test/run-pass/tool_lints.rs @@ -0,0 +1,15 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(tool_lints)] +#![deny(unknown_lints)] + +#[allow(clippy::almost_swapped)] +fn main() {} diff --git a/src/test/run-pass/tool_lints_2018_preview.rs b/src/test/run-pass/tool_lints_2018_preview.rs new file mode 100644 index 00000000000..6cd57eaa195 --- /dev/null +++ b/src/test/run-pass/tool_lints_2018_preview.rs @@ -0,0 +1,16 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(tool_lints)] +#![feature(rust_2018_preview)] +#![deny(unknown_lints)] + +#[allow(clippy::almost_swapped)] +fn main() {} diff --git a/src/test/ui/feature-gate-tool_lints.rs b/src/test/ui/feature-gate-tool_lints.rs new file mode 100644 index 00000000000..3ef67982be9 --- /dev/null +++ b/src/test/ui/feature-gate-tool_lints.rs @@ -0,0 +1,15 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[warn(clippy::decimal_literal_representation)] +//~^ ERROR scoped lint `clippy::decimal_literal_representation` is experimental +fn main() { + let a = 65_535; +} diff --git a/src/test/ui/feature-gate-tool_lints.stderr b/src/test/ui/feature-gate-tool_lints.stderr new file mode 100644 index 00000000000..8019b1e6a28 --- /dev/null +++ b/src/test/ui/feature-gate-tool_lints.stderr @@ -0,0 +1,11 @@ +error[E0658]: scoped lint `clippy::decimal_literal_representation` is experimental (see issue #44690) + --> $DIR/feature-gate-tool_lints.rs:11:8 + | +LL | #[warn(clippy::decimal_literal_representation)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: add #![feature(tool_lints)] to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`.