diff --git a/compiler/rustc_attr/src/builtin.rs b/compiler/rustc_attr/src/builtin.rs index 46643df84ccd..6397d4e236a0 100644 --- a/compiler/rustc_attr/src/builtin.rs +++ b/compiler/rustc_attr/src/builtin.rs @@ -465,7 +465,7 @@ fn find_stability_generic<'a, I>( struct_span_err!( diagnostic, item_sp, - E0788, + E0789, "`rustc_allowed_through_unstable_modules` attribute must be paired with a `stable` attribute" ) .emit(); diff --git a/compiler/rustc_error_codes/src/error_codes.rs b/compiler/rustc_error_codes/src/error_codes.rs index 56f29dcc5ce9..977318b85895 100644 --- a/compiler/rustc_error_codes/src/error_codes.rs +++ b/compiler/rustc_error_codes/src/error_codes.rs @@ -644,5 +644,5 @@ // E0721, // `await` keyword // E0723, // unstable feature in `const` context // E0738, // Removed; errored on `#[track_caller] fn`s in `extern "Rust" { ... }`. - E0788, // rustc_allowed_through_unstable_modules without stability attribute + E0789, // rustc_allowed_through_unstable_modules without stability attribute } diff --git a/compiler/rustc_middle/src/middle/stability.rs b/compiler/rustc_middle/src/middle/stability.rs index 9f00c6ac1126..91f6cdd0877e 100644 --- a/compiler/rustc_middle/src/middle/stability.rs +++ b/compiler/rustc_middle/src/middle/stability.rs @@ -492,6 +492,8 @@ pub fn check_stability( /// If so, and `id` is not `None`, a deprecated lint attached to `id` will be emitted. /// /// Pass `AllowUnstable::Yes` to `allow_unstable` to force an unstable item to be allowed. Deprecation warnings will be emitted normally. + /// + /// Returns `true` if item is allowed aka, stable or unstable under an enabled feature. pub fn check_stability_allow_unstable( self, def_id: DefId, diff --git a/compiler/rustc_passes/src/stability.rs b/compiler/rustc_passes/src/stability.rs index cf23e0ae5ef2..ef7c3fc0966f 100644 --- a/compiler/rustc_passes/src/stability.rs +++ b/compiler/rustc_passes/src/stability.rs @@ -858,7 +858,7 @@ fn visit_path(&mut self, path: &'tcx hir::Path<'tcx>, id: hir::HirId) { } else { AllowUnstable::No }, - ) + ); } } } diff --git a/src/test/ui-fulldeps/stability-attribute/rustc-encodable-stability.rs b/src/test/ui-fulldeps/rustc-encodable-stability.rs similarity index 100% rename from src/test/ui-fulldeps/stability-attribute/rustc-encodable-stability.rs rename to src/test/ui-fulldeps/rustc-encodable-stability.rs diff --git a/src/test/ui/stability-attribute/allow-through-unstable-misuse.rs b/src/test/ui/stability-attribute/allow-through-unstable-misuse.rs deleted file mode 100644 index 7f942309e049..000000000000 --- a/src/test/ui/stability-attribute/allow-through-unstable-misuse.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![crate_type = "lib"] -#![feature(staged_api)] -#![feature(rustc_attrs)] -#![stable(feature = "foo", since = "1.0.0")] - -#[unstable(feature = "bar", issue = "none")] -#[rustc_allowed_through_unstable_modules] -pub struct UnstableType(()); diff --git a/src/test/ui/stability-attribute/allowed-through-unstable.stderr b/src/test/ui/stability-attribute/allowed-through-unstable.stderr index 70b1dc3010a4..132c00b89b22 100644 --- a/src/test/ui/stability-attribute/allowed-through-unstable.stderr +++ b/src/test/ui/stability-attribute/allowed-through-unstable.stderr @@ -1,5 +1,5 @@ error[E0658]: use of unstable library feature 'unstable_test_feature' - --> $DIR/allowed-through-unstable.rs:10:5 + --> $DIR/allowed-through-unstable.rs:9:5 | LL | use allowed_through_unstable_core::unstable_module::NewStableTraitNotAllowedThroughUnstable; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/stability-attribute/rustc-encodable-stability.rs b/src/test/ui/stability-attribute/rustc-encodable-stability.rs deleted file mode 100644 index 18eff27d9a53..000000000000 --- a/src/test/ui/stability-attribute/rustc-encodable-stability.rs +++ /dev/null @@ -1,8 +0,0 @@ -// edition:2018 -#![allow(deprecated)] -extern crate rustc_serialize; - -#[derive(RustcDecodable, RustcEncodable)] -struct ArbitraryTestType(()); - -fn main() {} diff --git a/src/tools/tidy/src/error_codes_check.rs b/src/tools/tidy/src/error_codes_check.rs index e56ce3329cc4..4ffa1fa8b28d 100644 --- a/src/tools/tidy/src/error_codes_check.rs +++ b/src/tools/tidy/src/error_codes_check.rs @@ -11,7 +11,7 @@ // A few of those error codes can't be tested but all the others can and *should* be tested! const EXEMPTED_FROM_TEST: &[&str] = &[ "E0279", "E0313", "E0377", "E0461", "E0462", "E0465", "E0476", "E0490", "E0514", "E0519", - "E0523", "E0554", "E0640", "E0717", "E0729", + "E0523", "E0554", "E0640", "E0717", "E0729", "E0789", ]; // Some error codes don't have any tests apparently...