about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/html/render/mod.rs2
-rw-r--r--src/test/codegen/intrinsics/const_eval_select.rs1
-rw-r--r--src/test/ui/intrinsics/const-eval-select-bad.rs1
-rw-r--r--src/test/ui/intrinsics/const-eval-select-bad.stderr22
-rw-r--r--src/test/ui/intrinsics/const-eval-select-stability.rs1
-rw-r--r--src/test/ui/intrinsics/const-eval-select-stability.stderr2
-rw-r--r--src/test/ui/intrinsics/const-eval-select-x86_64.rs1
-rw-r--r--src/test/ui/intrinsics/const-eval-select.rs1
-rw-r--r--src/test/ui/lint/lint-stability.rs4
-rw-r--r--src/test/ui/lint/lint-stability.stderr18
-rw-r--r--src/test/ui/stability-attribute/accidental-stable-in-unstable.rs10
-rw-r--r--src/test/ui/stability-attribute/accidental-stable-in-unstable.stderr11
-rw-r--r--src/test/ui/stability-attribute/allowed-through-unstable.rs9
-rw-r--r--src/test/ui/stability-attribute/allowed-through-unstable.stderr12
-rw-r--r--src/test/ui/stability-attribute/auxiliary/allowed-through-unstable-core.rs14
-rw-r--r--src/test/ui/stability-attribute/auxiliary/stable-in-unstable-core.rs8
-rw-r--r--src/test/ui/stability-attribute/auxiliary/stable-in-unstable-std.rs11
-rw-r--r--src/test/ui/stability-attribute/stable-in-unstable.rs46
-rw-r--r--src/test/ui/stability-attribute/stable-in-unstable.stderr39
-rw-r--r--src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs2
-rw-r--r--src/tools/tidy/src/error_codes_check.rs2
21 files changed, 199 insertions, 18 deletions
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index 459b0fed6e8..c1fdece9ec6 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -854,7 +854,7 @@ fn render_stability_since_raw(
     }
 
     let const_title_and_stability = match const_stability {
-        Some(ConstStability { level: StabilityLevel::Stable { since }, .. })
+        Some(ConstStability { level: StabilityLevel::Stable { since, .. }, .. })
             if Some(since) != containing_const_ver =>
         {
             Some((format!("const since {}", since), format!("const: {}", since)))
diff --git a/src/test/codegen/intrinsics/const_eval_select.rs b/src/test/codegen/intrinsics/const_eval_select.rs
index 34e653b4b9d..db8a04763d3 100644
--- a/src/test/codegen/intrinsics/const_eval_select.rs
+++ b/src/test/codegen/intrinsics/const_eval_select.rs
@@ -2,6 +2,7 @@
 
 #![crate_type = "lib"]
 #![feature(const_eval_select)]
+#![feature(core_intrinsics)]
 
 use std::intrinsics::const_eval_select;
 
diff --git a/src/test/ui/intrinsics/const-eval-select-bad.rs b/src/test/ui/intrinsics/const-eval-select-bad.rs
index 7d924e2b7f3..52f4e594f1a 100644
--- a/src/test/ui/intrinsics/const-eval-select-bad.rs
+++ b/src/test/ui/intrinsics/const-eval-select-bad.rs
@@ -1,4 +1,5 @@
 #![feature(const_eval_select)]
+#![feature(core_intrinsics)]
 
 use std::intrinsics::const_eval_select;
 
diff --git a/src/test/ui/intrinsics/const-eval-select-bad.stderr b/src/test/ui/intrinsics/const-eval-select-bad.stderr
index 1d3bff3a724..6103d6c6e3a 100644
--- a/src/test/ui/intrinsics/const-eval-select-bad.stderr
+++ b/src/test/ui/intrinsics/const-eval-select-bad.stderr
@@ -1,18 +1,18 @@
-error[E0277]: the trait bound `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:29]: ~const FnOnce<()>` is not satisfied
-  --> $DIR/const-eval-select-bad.rs:6:27
+error[E0277]: the trait bound `[closure@$DIR/const-eval-select-bad.rs:7:27: 7:29]: ~const FnOnce<()>` is not satisfied
+  --> $DIR/const-eval-select-bad.rs:7:27
    |
 LL |     const_eval_select((), || {}, || {});
-   |     -----------------     ^^^^^ expected an `FnOnce<()>` closure, found `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:29]`
+   |     -----------------     ^^^^^ expected an `FnOnce<()>` closure, found `[closure@$DIR/const-eval-select-bad.rs:7:27: 7:29]`
    |     |
    |     required by a bound introduced by this call
    |
-   = help: the trait `~const FnOnce<()>` is not implemented for `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:29]`
-note: the trait `FnOnce<()>` is implemented for `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:29]`, but that implementation is not `const`
-  --> $DIR/const-eval-select-bad.rs:6:27
+   = help: the trait `~const FnOnce<()>` is not implemented for `[closure@$DIR/const-eval-select-bad.rs:7:27: 7:29]`
+note: the trait `FnOnce<()>` is implemented for `[closure@$DIR/const-eval-select-bad.rs:7:27: 7:29]`, but that implementation is not `const`
+  --> $DIR/const-eval-select-bad.rs:7:27
    |
 LL |     const_eval_select((), || {}, || {});
    |                           ^^^^^
-   = note: wrap the `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:29]` in a closure with no arguments: `|| { /* code */ }`
+   = note: wrap the `[closure@$DIR/const-eval-select-bad.rs:7:27: 7:29]` in a closure with no arguments: `|| { /* code */ }`
 note: required by a bound in `const_eval_select`
   --> $SRC_DIR/core/src/intrinsics.rs:LL:COL
    |
@@ -20,7 +20,7 @@ LL |     F: ~const FnOnce<ARG, Output = RET>,
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
 
 error[E0277]: the trait bound `{integer}: ~const FnOnce<()>` is not satisfied
-  --> $DIR/const-eval-select-bad.rs:8:27
+  --> $DIR/const-eval-select-bad.rs:9:27
    |
 LL |     const_eval_select((), 42, 0xDEADBEEF);
    |     -----------------     ^^ expected an `FnOnce<()>` closure, found `{integer}`
@@ -36,7 +36,7 @@ LL |     F: ~const FnOnce<ARG, Output = RET>,
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
 
 error[E0277]: expected a `FnOnce<()>` closure, found `{integer}`
-  --> $DIR/const-eval-select-bad.rs:8:31
+  --> $DIR/const-eval-select-bad.rs:9:31
    |
 LL |     const_eval_select((), 42, 0xDEADBEEF);
    |     -----------------         ^^^^^^^^^^ expected an `FnOnce<()>` closure, found `{integer}`
@@ -52,7 +52,7 @@ LL |     G: FnOnce<ARG, Output = RET> + ~const Destruct,
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
 
 error[E0271]: type mismatch resolving `<fn(i32) -> bool {bar} as FnOnce<(i32,)>>::Output == i32`
-  --> $DIR/const-eval-select-bad.rs:28:5
+  --> $DIR/const-eval-select-bad.rs:29:5
    |
 LL |     const_eval_select((1,), foo, bar);
    |     ^^^^^^^^^^^^^^^^^ expected `i32`, found `bool`
@@ -64,7 +64,7 @@ LL |     G: FnOnce<ARG, Output = RET> + ~const Destruct,
    |                    ^^^^^^^^^^^^ required by this bound in `const_eval_select`
 
 error[E0631]: type mismatch in function arguments
-  --> $DIR/const-eval-select-bad.rs:33:32
+  --> $DIR/const-eval-select-bad.rs:34:32
    |
 LL | const fn foo(n: i32) -> i32 {
    | --------------------------- found signature of `fn(i32) -> _`
diff --git a/src/test/ui/intrinsics/const-eval-select-stability.rs b/src/test/ui/intrinsics/const-eval-select-stability.rs
index db2462aee59..f9554decec1 100644
--- a/src/test/ui/intrinsics/const-eval-select-stability.rs
+++ b/src/test/ui/intrinsics/const-eval-select-stability.rs
@@ -1,5 +1,6 @@
 #![feature(staged_api)]
 #![feature(const_eval_select)]
+#![feature(core_intrinsics)]
 #![stable(since = "1.0", feature = "ui_test")]
 
 use std::intrinsics::const_eval_select;
diff --git a/src/test/ui/intrinsics/const-eval-select-stability.stderr b/src/test/ui/intrinsics/const-eval-select-stability.stderr
index 79641bbb46a..65b507b887b 100644
--- a/src/test/ui/intrinsics/const-eval-select-stability.stderr
+++ b/src/test/ui/intrinsics/const-eval-select-stability.stderr
@@ -1,5 +1,5 @@
 error: `const_eval_select` is not yet stable as a const fn
-  --> $DIR/const-eval-select-stability.rs:16:5
+  --> $DIR/const-eval-select-stability.rs:17:5
    |
 LL |     const_eval_select((), nothing, log);
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/intrinsics/const-eval-select-x86_64.rs b/src/test/ui/intrinsics/const-eval-select-x86_64.rs
index afec8e054bb..f3924acf0fa 100644
--- a/src/test/ui/intrinsics/const-eval-select-x86_64.rs
+++ b/src/test/ui/intrinsics/const-eval-select-x86_64.rs
@@ -2,6 +2,7 @@
 // only-x86_64
 
 #![feature(const_eval_select)]
+#![feature(core_intrinsics)]
 use std::intrinsics::const_eval_select;
 use std::arch::x86_64::*;
 use std::mem::transmute;
diff --git a/src/test/ui/intrinsics/const-eval-select.rs b/src/test/ui/intrinsics/const-eval-select.rs
index 744db2f15b0..9ff20d3fbdd 100644
--- a/src/test/ui/intrinsics/const-eval-select.rs
+++ b/src/test/ui/intrinsics/const-eval-select.rs
@@ -1,6 +1,7 @@
 // run-pass
 
 #![feature(const_eval_select)]
+#![feature(core_intrinsics)]
 
 use std::intrinsics::const_eval_select;
 
diff --git a/src/test/ui/lint/lint-stability.rs b/src/test/ui/lint/lint-stability.rs
index 464b32c5f43..d0f0e9f8071 100644
--- a/src/test/ui/lint/lint-stability.rs
+++ b/src/test/ui/lint/lint-stability.rs
@@ -191,11 +191,11 @@ mod inheritance {
         stable_mod::unstable(); //~ ERROR use of unstable library feature
         stable_mod::stable();
 
-        unstable_mod::deprecated();
+        unstable_mod::deprecated(); //~ ERROR use of unstable library feature
         unstable_mod::unstable(); //~ ERROR use of unstable library feature
 
         let _ = Unstable::UnstableVariant; //~ ERROR use of unstable library feature
-        let _ = Unstable::StableVariant;
+        let _ = Unstable::StableVariant; //~ ERROR use of unstable library feature
 
         let x: usize = 0;
         x.stable();
diff --git a/src/test/ui/lint/lint-stability.stderr b/src/test/ui/lint/lint-stability.stderr
index 167140ef92b..bd1a57dc4cc 100644
--- a/src/test/ui/lint/lint-stability.stderr
+++ b/src/test/ui/lint/lint-stability.stderr
@@ -295,6 +295,14 @@ LL |         stable_mod::unstable();
    = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
 
 error[E0658]: use of unstable library feature 'unstable_test_feature'
+  --> $DIR/lint-stability.rs:194:9
+   |
+LL |         unstable_mod::deprecated();
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'unstable_test_feature'
   --> $DIR/lint-stability.rs:195:9
    |
 LL |         unstable_mod::unstable();
@@ -311,6 +319,14 @@ LL |         let _ = Unstable::UnstableVariant;
    = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
 
 error[E0658]: use of unstable library feature 'unstable_test_feature'
+  --> $DIR/lint-stability.rs:198:17
+   |
+LL |         let _ = Unstable::StableVariant;
+   |                 ^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'unstable_test_feature'
   --> $DIR/lint-stability.rs:88:48
    |
 LL |         struct S1<T: TraitWithAssociatedTypes>(T::TypeUnstable);
@@ -326,6 +342,6 @@ LL |             TypeUnstable = u8,
    |
    = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
 
-error: aborting due to 41 previous errors
+error: aborting due to 43 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/stability-attribute/accidental-stable-in-unstable.rs b/src/test/ui/stability-attribute/accidental-stable-in-unstable.rs
new file mode 100644
index 00000000000..f8bbe90cfc5
--- /dev/null
+++ b/src/test/ui/stability-attribute/accidental-stable-in-unstable.rs
@@ -0,0 +1,10 @@
+#![crate_type = "lib"]
+extern crate core;
+
+// Known accidental stabilizations with no known users, slated for un-stabilization
+// fully stable @ core::char::UNICODE_VERSION
+use core::unicode::UNICODE_VERSION; //~ ERROR use of unstable library feature 'unicode_internals'
+
+// Known accidental stabilizations with known users
+// fully stable @ core::mem::transmute
+use core::intrinsics::transmute; // depended upon by rand_core
diff --git a/src/test/ui/stability-attribute/accidental-stable-in-unstable.stderr b/src/test/ui/stability-attribute/accidental-stable-in-unstable.stderr
new file mode 100644
index 00000000000..ff733822cab
--- /dev/null
+++ b/src/test/ui/stability-attribute/accidental-stable-in-unstable.stderr
@@ -0,0 +1,11 @@
+error[E0658]: use of unstable library feature 'unicode_internals'
+  --> $DIR/accidental-stable-in-unstable.rs:6:5
+   |
+LL | use core::unicode::UNICODE_VERSION;
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = help: add `#![feature(unicode_internals)]` to the crate attributes to enable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/stability-attribute/allowed-through-unstable.rs b/src/test/ui/stability-attribute/allowed-through-unstable.rs
new file mode 100644
index 00000000000..ff0228e4da6
--- /dev/null
+++ b/src/test/ui/stability-attribute/allowed-through-unstable.rs
@@ -0,0 +1,9 @@
+// Test for new `#[rustc_allowed_through_unstable_modules]` attribute
+//
+// aux-build:allowed-through-unstable-core.rs
+#![crate_type = "lib"]
+
+extern crate allowed_through_unstable_core;
+
+use allowed_through_unstable_core::unstable_module::OldStableTraitAllowedThoughUnstable;
+use allowed_through_unstable_core::unstable_module::NewStableTraitNotAllowedThroughUnstable; //~ ERROR use of unstable library feature 'unstable_test_feature'
diff --git a/src/test/ui/stability-attribute/allowed-through-unstable.stderr b/src/test/ui/stability-attribute/allowed-through-unstable.stderr
new file mode 100644
index 00000000000..132c00b89b2
--- /dev/null
+++ b/src/test/ui/stability-attribute/allowed-through-unstable.stderr
@@ -0,0 +1,12 @@
+error[E0658]: use of unstable library feature 'unstable_test_feature'
+  --> $DIR/allowed-through-unstable.rs:9:5
+   |
+LL | use allowed_through_unstable_core::unstable_module::NewStableTraitNotAllowedThroughUnstable;
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #1 <https://github.com/rust-lang/rust/issues/1> for more information
+   = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/stability-attribute/auxiliary/allowed-through-unstable-core.rs b/src/test/ui/stability-attribute/auxiliary/allowed-through-unstable-core.rs
new file mode 100644
index 00000000000..b597009a309
--- /dev/null
+++ b/src/test/ui/stability-attribute/auxiliary/allowed-through-unstable-core.rs
@@ -0,0 +1,14 @@
+#![crate_type = "lib"]
+#![feature(staged_api)]
+#![feature(rustc_attrs)]
+#![stable(feature = "stable_test_feature", since = "1.2.0")]
+
+#[unstable(feature = "unstable_test_feature", issue = "1")]
+pub mod unstable_module {
+    #[stable(feature = "stable_test_feature", since = "1.2.0")]
+    #[rustc_allowed_through_unstable_modules]
+    pub trait OldStableTraitAllowedThoughUnstable {}
+
+    #[stable(feature = "stable_test_feature", since = "1.2.0")]
+    pub trait NewStableTraitNotAllowedThroughUnstable {}
+}
diff --git a/src/test/ui/stability-attribute/auxiliary/stable-in-unstable-core.rs b/src/test/ui/stability-attribute/auxiliary/stable-in-unstable-core.rs
new file mode 100644
index 00000000000..e45b00f994a
--- /dev/null
+++ b/src/test/ui/stability-attribute/auxiliary/stable-in-unstable-core.rs
@@ -0,0 +1,8 @@
+#![feature(staged_api)]
+#![stable(feature = "stable_test_feature", since = "1.2.0")]
+
+#[unstable(feature = "unstable_test_feature", issue = "1")]
+pub mod new_unstable_module {
+    #[stable(feature = "stable_test_feature", since = "1.2.0")]
+    pub trait OldTrait {}
+}
diff --git a/src/test/ui/stability-attribute/auxiliary/stable-in-unstable-std.rs b/src/test/ui/stability-attribute/auxiliary/stable-in-unstable-std.rs
new file mode 100644
index 00000000000..28ad8c28da1
--- /dev/null
+++ b/src/test/ui/stability-attribute/auxiliary/stable-in-unstable-std.rs
@@ -0,0 +1,11 @@
+#![feature(staged_api)]
+#![feature(unstable_test_feature)]
+#![stable(feature = "stable_test_feature", since = "1.2.0")]
+
+extern crate stable_in_unstable_core;
+
+#[stable(feature = "stable_test_feature", since = "1.2.0")]
+pub mod old_stable_module {
+    #[stable(feature = "stable_test_feature", since = "1.2.0")]
+    pub use stable_in_unstable_core::new_unstable_module::OldTrait;
+}
diff --git a/src/test/ui/stability-attribute/stable-in-unstable.rs b/src/test/ui/stability-attribute/stable-in-unstable.rs
new file mode 100644
index 00000000000..272a1a97234
--- /dev/null
+++ b/src/test/ui/stability-attribute/stable-in-unstable.rs
@@ -0,0 +1,46 @@
+// This test is meant to test that we can have a stable item in an unstable module, and that
+// calling that item through the unstable module is unstable, but that re-exporting it from another
+// crate in a stable module is fine.
+//
+// This is necessary to support moving items from `std` into `core` or `alloc` unstably while still
+// exporting the original stable interface in `std`, such as moving `Error` into `core`.
+//
+// aux-build:stable-in-unstable-core.rs
+// aux-build:stable-in-unstable-std.rs
+#![crate_type = "lib"]
+
+extern crate stable_in_unstable_core;
+extern crate stable_in_unstable_std;
+
+mod isolated1 {
+    use stable_in_unstable_core::new_unstable_module; //~ ERROR use of unstable library feature 'unstable_test_feature'
+    use stable_in_unstable_core::new_unstable_module::OldTrait; //~ ERROR use of unstable library feature 'unstable_test_feature'
+}
+
+mod isolated2 {
+    use stable_in_unstable_std::old_stable_module::OldTrait;
+
+    struct LocalType;
+
+    impl OldTrait for LocalType {}
+}
+
+mod isolated3 {
+    use stable_in_unstable_core::new_unstable_module::OldTrait; //~ ERROR use of unstable library feature 'unstable_test_feature'
+
+    struct LocalType;
+
+    impl OldTrait for LocalType {}
+}
+
+mod isolated4 {
+    struct LocalType;
+
+    impl stable_in_unstable_core::new_unstable_module::OldTrait for LocalType {} //~ ERROR use of unstable library feature 'unstable_test_feature'
+}
+
+mod isolated5 {
+    struct LocalType;
+
+    impl stable_in_unstable_std::old_stable_module::OldTrait for LocalType {}
+}
diff --git a/src/test/ui/stability-attribute/stable-in-unstable.stderr b/src/test/ui/stability-attribute/stable-in-unstable.stderr
new file mode 100644
index 00000000000..e123d83584c
--- /dev/null
+++ b/src/test/ui/stability-attribute/stable-in-unstable.stderr
@@ -0,0 +1,39 @@
+error[E0658]: use of unstable library feature 'unstable_test_feature'
+  --> $DIR/stable-in-unstable.rs:16:9
+   |
+LL |     use stable_in_unstable_core::new_unstable_module;
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #1 <https://github.com/rust-lang/rust/issues/1> for more information
+   = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'unstable_test_feature'
+  --> $DIR/stable-in-unstable.rs:17:9
+   |
+LL |     use stable_in_unstable_core::new_unstable_module::OldTrait;
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #1 <https://github.com/rust-lang/rust/issues/1> for more information
+   = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'unstable_test_feature'
+  --> $DIR/stable-in-unstable.rs:29:9
+   |
+LL |     use stable_in_unstable_core::new_unstable_module::OldTrait;
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #1 <https://github.com/rust-lang/rust/issues/1> for more information
+   = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'unstable_test_feature'
+  --> $DIR/stable-in-unstable.rs:39:10
+   |
+LL |     impl stable_in_unstable_core::new_unstable_module::OldTrait for LocalType {}
+   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #1 <https://github.com/rust-lang/rust/issues/1> for more information
+   = help: add `#![feature(unstable_test_feature)]` to the crate attributes to enable
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs b/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs
index f3283588c73..3bf75bcbee8 100644
--- a/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs
+++ b/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs
@@ -354,7 +354,7 @@ fn check_terminator<'a, 'tcx>(
 fn is_const_fn(tcx: TyCtxt<'_>, def_id: DefId, msrv: Option<RustcVersion>) -> bool {
     tcx.is_const_fn(def_id)
         && tcx.lookup_const_stability(def_id).map_or(true, |const_stab| {
-            if let rustc_attr::StabilityLevel::Stable { since } = const_stab.level {
+            if let rustc_attr::StabilityLevel::Stable { since, .. } = const_stab.level {
                 // Checking MSRV is manually necessary because `rustc` has no such concept. This entire
                 // function could be removed if `rustc` provided a MSRV-aware version of `is_const_fn`.
                 // as a part of an unimplemented MSRV check https://github.com/rust-lang/rust/issues/65262.
diff --git a/src/tools/tidy/src/error_codes_check.rs b/src/tools/tidy/src/error_codes_check.rs
index e56ce3329cc..4ffa1fa8b28 100644
--- a/src/tools/tidy/src/error_codes_check.rs
+++ b/src/tools/tidy/src/error_codes_check.rs
@@ -11,7 +11,7 @@ use regex::Regex;
 // 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...