From 1511df2521891682c9ff7a72c94b7b882b607045 Mon Sep 17 00:00:00 2001 From: varkor Date: Mon, 23 Jul 2018 13:49:51 +0100 Subject: [PATCH] Add a test for feature attribute consistency Note that this doesn't test consistency of some properties, like `reason`. --- .../stability-attribute-consistency.rs | 26 +++++++++++++++++++ .../stability-attribute-consistency.stderr | 15 +++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/test/ui/feature-gate/stability-attribute-consistency.rs create mode 100644 src/test/ui/feature-gate/stability-attribute-consistency.stderr diff --git a/src/test/ui/feature-gate/stability-attribute-consistency.rs b/src/test/ui/feature-gate/stability-attribute-consistency.rs new file mode 100644 index 00000000000..94bc57d10e5 --- /dev/null +++ b/src/test/ui/feature-gate/stability-attribute-consistency.rs @@ -0,0 +1,26 @@ +// 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. + +#![stable(feature = "stable_test_feature", since = "1.0.0")] + +#![feature(staged_api)] + +#[stable(feature = "foo", since = "1.0.0")] +fn foo_stable_1_0_0() {} + +#[stable(feature = "foo", since = "1.29.0")] +//~^ ERROR feature `foo` is declared stable since 1.29.0 +fn foo_stable_1_29_0() {} + +#[unstable(feature = "foo", issue = "0")] +//~^ ERROR feature `foo` is declared unstable +fn foo_unstable() {} + +fn main() {} diff --git a/src/test/ui/feature-gate/stability-attribute-consistency.stderr b/src/test/ui/feature-gate/stability-attribute-consistency.stderr new file mode 100644 index 00000000000..1b2fdd6014e --- /dev/null +++ b/src/test/ui/feature-gate/stability-attribute-consistency.stderr @@ -0,0 +1,15 @@ +error[E0711]: feature `foo` is declared stable since 1.29.0, but was previously declared stable since 1.0.0 + --> $DIR/stability-attribute-consistency.rs:18:1 + | +LL | #[stable(feature = "foo", since = "1.29.0")] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error[E0711]: feature `foo` is declared unstable, but was previously declared stable + --> $DIR/stability-attribute-consistency.rs:22:1 + | +LL | #[unstable(feature = "foo", issue = "0")] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0711`. -- 2.44.0