about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2024-06-16 22:07:23 -0400
committerMichael Goulet <michael@errs.io>2024-06-17 22:35:25 -0400
commit227374714f3429e401c2c572a7eba00a4423ae09 (patch)
treecbc680fe64f6c2e86ae3f0f740a7410e7dc0b40f
parent579bc3c0e8adb3418d41246d937ddd63e0a0cfcf (diff)
downloadrust-227374714f3429e401c2c572a7eba00a4423ae09.tar.gz
rust-227374714f3429e401c2c572a7eba00a4423ae09.zip
Delay a bug and mark precise_capturing as not incomplete
-rw-r--r--compiler/rustc_ast_lowering/src/lib.rs6
-rw-r--r--compiler/rustc_feature/src/unstable.rs2
-rw-r--r--tests/ui/impl-trait/call_method_ambiguous.next.stderr2
-rw-r--r--tests/ui/impl-trait/call_method_ambiguous.rs3
-rw-r--r--tests/ui/impl-trait/precise-capturing/apit.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/apit.stderr13
-rw-r--r--tests/ui/impl-trait/precise-capturing/bad-lifetimes.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/bad-lifetimes.stderr19
-rw-r--r--tests/ui/impl-trait/precise-capturing/bad-params.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/bad-params.stderr19
-rw-r--r--tests/ui/impl-trait/precise-capturing/capture-parent-arg.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/capture-parent-arg.stderr15
-rw-r--r--tests/ui/impl-trait/precise-capturing/duplicated-use.pre_expansion.stderr11
-rw-r--r--tests/ui/impl-trait/precise-capturing/duplicated-use.real.stderr13
-rw-r--r--tests/ui/impl-trait/precise-capturing/duplicated-use.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/elided.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/elided.stderr11
-rw-r--r--tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.stderr13
-rw-r--r--tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.stderr15
-rw-r--r--tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.stderr15
-rw-r--r--tests/ui/impl-trait/precise-capturing/higher-ranked.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/higher-ranked.stderr11
-rw-r--r--tests/ui/impl-trait/precise-capturing/illegal-positions.pre_expansion.stderr11
-rw-r--r--tests/ui/impl-trait/precise-capturing/illegal-positions.real.stderr29
-rw-r--r--tests/ui/impl-trait/precise-capturing/illegal-positions.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/ordering.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/ordering.stderr19
-rw-r--r--tests/ui/impl-trait/precise-capturing/outlives.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/outlives.stderr11
-rw-r--r--tests/ui/impl-trait/precise-capturing/redundant.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/redundant.stderr19
-rw-r--r--tests/ui/impl-trait/precise-capturing/self-capture.rs1
-rw-r--r--tests/ui/impl-trait/precise-capturing/self-capture.stderr11
36 files changed, 53 insertions, 230 deletions
diff --git a/compiler/rustc_ast_lowering/src/lib.rs b/compiler/rustc_ast_lowering/src/lib.rs
index b998912bf6d..f18ceb62e0b 100644
--- a/compiler/rustc_ast_lowering/src/lib.rs
+++ b/compiler/rustc_ast_lowering/src/lib.rs
@@ -1385,7 +1385,11 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
                                 None
                             }
                             // Ignore `use` syntax since that is not valid in objects.
-                            GenericBound::Use(..) => None,
+                            GenericBound::Use(_, span) => {
+                                this.dcx()
+                                    .span_delayed_bug(*span, "use<> not allowed in dyn types");
+                                None
+                            }
                         }));
                     let lifetime_bound =
                         lifetime_bound.unwrap_or_else(|| this.elided_dyn_bound(t.span));
diff --git a/compiler/rustc_feature/src/unstable.rs b/compiler/rustc_feature/src/unstable.rs
index 5cb72a2ba38..066a5a8f046 100644
--- a/compiler/rustc_feature/src/unstable.rs
+++ b/compiler/rustc_feature/src/unstable.rs
@@ -568,7 +568,7 @@ declare_features! (
     /// Allows postfix match `expr.match { ... }`
     (unstable, postfix_match, "1.79.0", Some(121618)),
     /// Allows `use<'a, 'b, A, B>` in `impl Trait + use<...>` for precise capture of generic args.
-    (incomplete, precise_capturing, "1.79.0", Some(123432)),
+    (unstable, precise_capturing, "1.79.0", Some(123432)),
     /// Allows macro attributes on expressions, statements and non-inline modules.
     (unstable, proc_macro_hygiene, "1.30.0", Some(54727)),
     /// Allows `&raw const $place_expr` and `&raw mut $place_expr` expressions.
diff --git a/tests/ui/impl-trait/call_method_ambiguous.next.stderr b/tests/ui/impl-trait/call_method_ambiguous.next.stderr
index cd222aa7ae9..a1f9a8b40a8 100644
--- a/tests/ui/impl-trait/call_method_ambiguous.next.stderr
+++ b/tests/ui/impl-trait/call_method_ambiguous.next.stderr
@@ -1,5 +1,5 @@
 error[E0282]: type annotations needed
-  --> $DIR/call_method_ambiguous.rs:29:13
+  --> $DIR/call_method_ambiguous.rs:28:13
    |
 LL |         let mut iter = foo(n - 1, m);
    |             ^^^^^^^^
diff --git a/tests/ui/impl-trait/call_method_ambiguous.rs b/tests/ui/impl-trait/call_method_ambiguous.rs
index c26c01e002d..4dac605d6b8 100644
--- a/tests/ui/impl-trait/call_method_ambiguous.rs
+++ b/tests/ui/impl-trait/call_method_ambiguous.rs
@@ -3,7 +3,6 @@
 //@[current] run-pass
 
 #![feature(precise_capturing)]
-#![allow(incomplete_features)]
 
 trait Get {
     fn get(&mut self) -> u32;
@@ -24,7 +23,7 @@ where
     }
 }
 
-fn foo(n: usize, m: &mut ()) -> impl use<'_> Get {
+fn foo(n: usize, m: &mut ()) -> impl Get + use<'_> {
     if n > 0 {
         let mut iter = foo(n - 1, m);
         //[next]~^ type annotations needed
diff --git a/tests/ui/impl-trait/precise-capturing/apit.rs b/tests/ui/impl-trait/precise-capturing/apit.rs
index 961438c9d87..64c15d6df96 100644
--- a/tests/ui/impl-trait/precise-capturing/apit.rs
+++ b/tests/ui/impl-trait/precise-capturing/apit.rs
@@ -1,5 +1,4 @@
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn hello(_: impl Sized + use<>) {}
 //~^ ERROR `use<...>` precise capturing syntax not allowed in argument-position `impl Trait`
diff --git a/tests/ui/impl-trait/precise-capturing/apit.stderr b/tests/ui/impl-trait/precise-capturing/apit.stderr
index 431c619bef7..1d6225a1ff8 100644
--- a/tests/ui/impl-trait/precise-capturing/apit.stderr
+++ b/tests/ui/impl-trait/precise-capturing/apit.stderr
@@ -1,17 +1,8 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/apit.rs:1:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: `use<...>` precise capturing syntax not allowed in argument-position `impl Trait`
-  --> $DIR/apit.rs:4:26
+  --> $DIR/apit.rs:3:26
    |
 LL | fn hello(_: impl Sized + use<>) {}
    |                          ^^^^^
 
-error: aborting due to 1 previous error; 1 warning emitted
+error: aborting due to 1 previous error
 
diff --git a/tests/ui/impl-trait/precise-capturing/bad-lifetimes.rs b/tests/ui/impl-trait/precise-capturing/bad-lifetimes.rs
index d9ea20b1e30..d2d4570c570 100644
--- a/tests/ui/impl-trait/precise-capturing/bad-lifetimes.rs
+++ b/tests/ui/impl-trait/precise-capturing/bad-lifetimes.rs
@@ -1,5 +1,4 @@
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn no_elided_lt() -> impl Sized + use<'_> {}
 //~^ ERROR missing lifetime specifier
diff --git a/tests/ui/impl-trait/precise-capturing/bad-lifetimes.stderr b/tests/ui/impl-trait/precise-capturing/bad-lifetimes.stderr
index ac8ec34e341..550996ab5e5 100644
--- a/tests/ui/impl-trait/precise-capturing/bad-lifetimes.stderr
+++ b/tests/ui/impl-trait/precise-capturing/bad-lifetimes.stderr
@@ -1,5 +1,5 @@
 error[E0106]: missing lifetime specifier
-  --> $DIR/bad-lifetimes.rs:4:39
+  --> $DIR/bad-lifetimes.rs:3:39
    |
 LL | fn no_elided_lt() -> impl Sized + use<'_> {}
    |                                       ^^ expected named lifetime parameter
@@ -11,35 +11,26 @@ LL | fn no_elided_lt() -> impl Sized + use<'static> {}
    |                                       ~~~~~~~
 
 error[E0261]: use of undeclared lifetime name `'missing`
-  --> $DIR/bad-lifetimes.rs:11:37
+  --> $DIR/bad-lifetimes.rs:10:37
    |
 LL | fn missing_lt() -> impl Sized + use<'missing> {}
    |              -                      ^^^^^^^^ undeclared lifetime
    |              |
    |              help: consider introducing lifetime `'missing` here: `<'missing>`
 
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/bad-lifetimes.rs:1:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: expected lifetime parameter in `use<...>` precise captures list, found `'_`
-  --> $DIR/bad-lifetimes.rs:4:39
+  --> $DIR/bad-lifetimes.rs:3:39
    |
 LL | fn no_elided_lt() -> impl Sized + use<'_> {}
    |                                       ^^
 
 error: expected lifetime parameter in `use<...>` precise captures list, found `'static`
-  --> $DIR/bad-lifetimes.rs:8:36
+  --> $DIR/bad-lifetimes.rs:7:36
    |
 LL | fn static_lt() -> impl Sized + use<'static> {}
    |                                    ^^^^^^^
 
-error: aborting due to 4 previous errors; 1 warning emitted
+error: aborting due to 4 previous errors
 
 Some errors have detailed explanations: E0106, E0261.
 For more information about an error, try `rustc --explain E0106`.
diff --git a/tests/ui/impl-trait/precise-capturing/bad-params.rs b/tests/ui/impl-trait/precise-capturing/bad-params.rs
index 4d9392f76f2..08eee67c0e5 100644
--- a/tests/ui/impl-trait/precise-capturing/bad-params.rs
+++ b/tests/ui/impl-trait/precise-capturing/bad-params.rs
@@ -1,5 +1,4 @@
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn missing() -> impl Sized + use<T> {}
 //~^ ERROR cannot find type `T` in this scope
diff --git a/tests/ui/impl-trait/precise-capturing/bad-params.stderr b/tests/ui/impl-trait/precise-capturing/bad-params.stderr
index 309a8128fe4..e104f115aa3 100644
--- a/tests/ui/impl-trait/precise-capturing/bad-params.stderr
+++ b/tests/ui/impl-trait/precise-capturing/bad-params.stderr
@@ -1,5 +1,5 @@
 error[E0412]: cannot find type `T` in this scope
-  --> $DIR/bad-params.rs:4:34
+  --> $DIR/bad-params.rs:3:34
    |
 LL | fn missing() -> impl Sized + use<T> {}
    |                                  ^ not found in this scope
@@ -10,24 +10,15 @@ LL | fn missing<T>() -> impl Sized + use<T> {}
    |           +++
 
 error[E0411]: cannot find type `Self` in this scope
-  --> $DIR/bad-params.rs:7:39
+  --> $DIR/bad-params.rs:6:39
    |
 LL | fn missing_self() -> impl Sized + use<Self> {}
    |    ------------                       ^^^^ `Self` is only available in impls, traits, and type definitions
    |    |
    |    `Self` not allowed in a function
 
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/bad-params.rs:1:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: `Self` can't be captured in `use<...>` precise captures list, since it is an alias
-  --> $DIR/bad-params.rs:12:48
+  --> $DIR/bad-params.rs:11:48
    |
 LL | impl MyType {
    | ----------- `Self` is not a generic argument, but an alias to the type of the implementation
@@ -35,12 +26,12 @@ LL |     fn self_is_not_param() -> impl Sized + use<Self> {}
    |                                                ^^^^
 
 error: expected type or const parameter in `use<...>` precise captures list, found function
-  --> $DIR/bad-params.rs:16:32
+  --> $DIR/bad-params.rs:15:32
    |
 LL | fn hello() -> impl Sized + use<hello> {}
    |                                ^^^^^
 
-error: aborting due to 4 previous errors; 1 warning emitted
+error: aborting due to 4 previous errors
 
 Some errors have detailed explanations: E0411, E0412.
 For more information about an error, try `rustc --explain E0411`.
diff --git a/tests/ui/impl-trait/precise-capturing/capture-parent-arg.rs b/tests/ui/impl-trait/precise-capturing/capture-parent-arg.rs
index f4acc4db269..82b953bfed4 100644
--- a/tests/ui/impl-trait/precise-capturing/capture-parent-arg.rs
+++ b/tests/ui/impl-trait/precise-capturing/capture-parent-arg.rs
@@ -1,5 +1,4 @@
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 trait Tr {
     type Assoc;
diff --git a/tests/ui/impl-trait/precise-capturing/capture-parent-arg.stderr b/tests/ui/impl-trait/precise-capturing/capture-parent-arg.stderr
index 447f74dca2b..b521ee0a902 100644
--- a/tests/ui/impl-trait/precise-capturing/capture-parent-arg.stderr
+++ b/tests/ui/impl-trait/precise-capturing/capture-parent-arg.stderr
@@ -1,14 +1,5 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/capture-parent-arg.rs:1:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: `impl Trait` captures lifetime parameter, but it is not mentioned in `use<...>` precise captures list
-  --> $DIR/capture-parent-arg.rs:28:31
+  --> $DIR/capture-parent-arg.rs:27:31
    |
 LL | impl<'a> W<'a> {
    |      -- this lifetime parameter is captured
@@ -16,12 +7,12 @@ LL |     fn bad1() -> impl Into<<W<'a> as Tr>::Assoc> + use<> {}
    |                  -------------^^------------------------ lifetime captured due to being mentioned in the bounds of the `impl Trait`
 
 error: `impl Trait` captures lifetime parameter, but it is not mentioned in `use<...>` precise captures list
-  --> $DIR/capture-parent-arg.rs:34:18
+  --> $DIR/capture-parent-arg.rs:33:18
    |
 LL | impl<'a> W<'a> {
    |      -- this lifetime parameter is captured
 LL |     fn bad2() -> impl Into<<Self as Tr>::Assoc> + use<> {}
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime captured due to being mentioned in the bounds of the `impl Trait`
 
-error: aborting due to 2 previous errors; 1 warning emitted
+error: aborting due to 2 previous errors
 
diff --git a/tests/ui/impl-trait/precise-capturing/duplicated-use.pre_expansion.stderr b/tests/ui/impl-trait/precise-capturing/duplicated-use.pre_expansion.stderr
deleted file mode 100644
index 4ecec0143d6..00000000000
--- a/tests/ui/impl-trait/precise-capturing/duplicated-use.pre_expansion.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/duplicated-use.rs:4:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-warning: 1 warning emitted
-
diff --git a/tests/ui/impl-trait/precise-capturing/duplicated-use.real.stderr b/tests/ui/impl-trait/precise-capturing/duplicated-use.real.stderr
index 08367373d5a..d8edd672b48 100644
--- a/tests/ui/impl-trait/precise-capturing/duplicated-use.real.stderr
+++ b/tests/ui/impl-trait/precise-capturing/duplicated-use.real.stderr
@@ -1,17 +1,8 @@
 error: duplicate `use<...>` precise capturing syntax
-  --> $DIR/duplicated-use.rs:8:32
+  --> $DIR/duplicated-use.rs:7:32
    |
 LL | fn hello<'a>() -> impl Sized + use<'a> + use<'a> {}
    |                                ^^^^^^^   ------- second `use<...>` here
 
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/duplicated-use.rs:4:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-error: aborting due to 1 previous error; 1 warning emitted
+error: aborting due to 1 previous error
 
diff --git a/tests/ui/impl-trait/precise-capturing/duplicated-use.rs b/tests/ui/impl-trait/precise-capturing/duplicated-use.rs
index 36ccc104ea1..bfbdcdbf311 100644
--- a/tests/ui/impl-trait/precise-capturing/duplicated-use.rs
+++ b/tests/ui/impl-trait/precise-capturing/duplicated-use.rs
@@ -2,7 +2,6 @@
 //@[pre_expansion] check-pass
 
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 #[cfg(real)]
 fn hello<'a>() -> impl Sized + use<'a> + use<'a> {}
diff --git a/tests/ui/impl-trait/precise-capturing/elided.rs b/tests/ui/impl-trait/precise-capturing/elided.rs
index 71e269e03a3..34d1ba620dc 100644
--- a/tests/ui/impl-trait/precise-capturing/elided.rs
+++ b/tests/ui/impl-trait/precise-capturing/elided.rs
@@ -1,7 +1,6 @@
 //@ check-pass
 
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn elided(x: &()) -> impl Sized + use<'_> { x }
 
diff --git a/tests/ui/impl-trait/precise-capturing/elided.stderr b/tests/ui/impl-trait/precise-capturing/elided.stderr
deleted file mode 100644
index 38da0828de9..00000000000
--- a/tests/ui/impl-trait/precise-capturing/elided.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/elided.rs:3:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-warning: 1 warning emitted
-
diff --git a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.rs b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.rs
index 49466585c52..26d29e456ea 100644
--- a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.rs
+++ b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.rs
@@ -1,5 +1,4 @@
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn constant<const C: usize>() -> impl Sized + use<> {}
 //~^ ERROR `impl Trait` must mention all const parameters in scope
diff --git a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.stderr b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.stderr
index ce27f79a9d6..989ed136d4c 100644
--- a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.stderr
+++ b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-const.stderr
@@ -1,14 +1,5 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/forgot-to-capture-const.rs:1:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: `impl Trait` must mention all const parameters in scope in `use<...>`
-  --> $DIR/forgot-to-capture-const.rs:4:34
+  --> $DIR/forgot-to-capture-const.rs:3:34
    |
 LL | fn constant<const C: usize>() -> impl Sized + use<> {}
    |             --------------       ^^^^^^^^^^^^^^^^^^
@@ -17,5 +8,5 @@ LL | fn constant<const C: usize>() -> impl Sized + use<> {}
    |
    = note: currently, all const parameters are required to be mentioned in the precise captures list
 
-error: aborting due to 1 previous error; 1 warning emitted
+error: aborting due to 1 previous error
 
diff --git a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.rs b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.rs
index 9af36817847..f18dbca6c5e 100644
--- a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.rs
+++ b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.rs
@@ -1,5 +1,4 @@
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn lifetime_in_bounds<'a>(x: &'a ()) -> impl Into<&'a ()> + use<> { x }
 //~^ ERROR `impl Trait` captures lifetime parameter, but it is not mentioned in `use<...>` precise captures list
diff --git a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.stderr b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.stderr
index c884b6b0d91..6544837ba83 100644
--- a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.stderr
+++ b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-lifetime.stderr
@@ -1,14 +1,5 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/forgot-to-capture-lifetime.rs:1:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: `impl Trait` captures lifetime parameter, but it is not mentioned in `use<...>` precise captures list
-  --> $DIR/forgot-to-capture-lifetime.rs:4:52
+  --> $DIR/forgot-to-capture-lifetime.rs:3:52
    |
 LL | fn lifetime_in_bounds<'a>(x: &'a ()) -> impl Into<&'a ()> + use<> { x }
    |                       --                -----------^^------------
@@ -17,7 +8,7 @@ LL | fn lifetime_in_bounds<'a>(x: &'a ()) -> impl Into<&'a ()> + use<> { x }
    |                       this lifetime parameter is captured
 
 error[E0700]: hidden type for `impl Sized` captures lifetime that does not appear in bounds
-  --> $DIR/forgot-to-capture-lifetime.rs:7:62
+  --> $DIR/forgot-to-capture-lifetime.rs:6:62
    |
 LL | fn lifetime_in_hidden<'a>(x: &'a ()) -> impl Sized + use<> { x }
    |                       --                ------------------   ^
@@ -30,6 +21,6 @@ help: to declare that `impl Sized` captures `'a`, you can add an explicit `'a` l
 LL | fn lifetime_in_hidden<'a>(x: &'a ()) -> impl Sized + use<> + 'a { x }
    |                                                            ++++
 
-error: aborting due to 2 previous errors; 1 warning emitted
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0700`.
diff --git a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.rs b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.rs
index bfb0745805a..08014985783 100644
--- a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.rs
+++ b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.rs
@@ -1,5 +1,4 @@
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn type_param<T>() -> impl Sized + use<> {}
 //~^ ERROR `impl Trait` must mention all type parameters in scope
diff --git a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.stderr b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.stderr
index 91e7e79564d..93b44a0c18c 100644
--- a/tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.stderr
+++ b/tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.stderr
@@ -1,14 +1,5 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/forgot-to-capture-type.rs:1:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: `impl Trait` must mention all type parameters in scope in `use<...>`
-  --> $DIR/forgot-to-capture-type.rs:4:23
+  --> $DIR/forgot-to-capture-type.rs:3:23
    |
 LL | fn type_param<T>() -> impl Sized + use<> {}
    |               -       ^^^^^^^^^^^^^^^^^^
@@ -18,7 +9,7 @@ LL | fn type_param<T>() -> impl Sized + use<> {}
    = note: currently, all type parameters are required to be mentioned in the precise captures list
 
 error: `impl Trait` must mention the `Self` type of the trait in `use<...>`
-  --> $DIR/forgot-to-capture-type.rs:8:17
+  --> $DIR/forgot-to-capture-type.rs:7:17
    |
 LL | trait Foo {
    | --------- `Self` type parameter is implicitly captured by this `impl Trait`
@@ -27,5 +18,5 @@ LL |     fn bar() -> impl Sized + use<>;
    |
    = note: currently, all type parameters are required to be mentioned in the precise captures list
 
-error: aborting due to 2 previous errors; 1 warning emitted
+error: aborting due to 2 previous errors
 
diff --git a/tests/ui/impl-trait/precise-capturing/higher-ranked.rs b/tests/ui/impl-trait/precise-capturing/higher-ranked.rs
index 7c8038600d1..21ac19640bc 100644
--- a/tests/ui/impl-trait/precise-capturing/higher-ranked.rs
+++ b/tests/ui/impl-trait/precise-capturing/higher-ranked.rs
@@ -3,7 +3,6 @@
 // Show how precise captures allow us to skip capturing a higher-ranked lifetime
 
 #![feature(lifetime_capture_rules_2024, precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 trait Trait<'a> {
     type Item;
diff --git a/tests/ui/impl-trait/precise-capturing/higher-ranked.stderr b/tests/ui/impl-trait/precise-capturing/higher-ranked.stderr
deleted file mode 100644
index e48d6d42af0..00000000000
--- a/tests/ui/impl-trait/precise-capturing/higher-ranked.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/higher-ranked.rs:5:41
-   |
-LL | #![feature(lifetime_capture_rules_2024, precise_capturing)]
-   |                                         ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-warning: 1 warning emitted
-
diff --git a/tests/ui/impl-trait/precise-capturing/illegal-positions.pre_expansion.stderr b/tests/ui/impl-trait/precise-capturing/illegal-positions.pre_expansion.stderr
deleted file mode 100644
index 7364dc7ffcf..00000000000
--- a/tests/ui/impl-trait/precise-capturing/illegal-positions.pre_expansion.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/illegal-positions.rs:5:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-warning: 1 warning emitted
-
diff --git a/tests/ui/impl-trait/precise-capturing/illegal-positions.real.stderr b/tests/ui/impl-trait/precise-capturing/illegal-positions.real.stderr
index 35fda00a7cb..2b234bcb6a5 100644
--- a/tests/ui/impl-trait/precise-capturing/illegal-positions.real.stderr
+++ b/tests/ui/impl-trait/precise-capturing/illegal-positions.real.stderr
@@ -1,66 +1,57 @@
 error: `use<...>` precise capturing syntax not allowed in supertrait bounds
-  --> $DIR/illegal-positions.rs:9:12
+  --> $DIR/illegal-positions.rs:8:12
    |
 LL | trait Foo: use<> {
    |            ^^^^^
 
 error: `use<...>` precise capturing syntax not allowed in bounds
-  --> $DIR/illegal-positions.rs:11:33
+  --> $DIR/illegal-positions.rs:10:33
    |
 LL |     type Assoc: use<> where (): use<>;
    |                                 ^^^^^
 
 error: `use<...>` precise capturing syntax not allowed in bounds
-  --> $DIR/illegal-positions.rs:11:17
+  --> $DIR/illegal-positions.rs:10:17
    |
 LL |     type Assoc: use<> where (): use<>;
    |                 ^^^^^
 
 error: `use<...>` precise capturing syntax not allowed in bounds
-  --> $DIR/illegal-positions.rs:17:11
+  --> $DIR/illegal-positions.rs:16:11
    |
 LL | fn fun<T: use<>>(_: impl use<>) where (): use<> {}
    |           ^^^^^
 
 error: `use<...>` precise capturing syntax not allowed in bounds
-  --> $DIR/illegal-positions.rs:17:43
+  --> $DIR/illegal-positions.rs:16:43
    |
 LL | fn fun<T: use<>>(_: impl use<>) where (): use<> {}
    |                                           ^^^^^
 
 error: at least one trait must be specified
-  --> $DIR/illegal-positions.rs:17:21
+  --> $DIR/illegal-positions.rs:16:21
    |
 LL | fn fun<T: use<>>(_: impl use<>) where (): use<> {}
    |                     ^^^^^^^^^^
 
 error: `use<...>` precise capturing syntax not allowed in `dyn` trait object bounds
-  --> $DIR/illegal-positions.rs:24:25
+  --> $DIR/illegal-positions.rs:23:25
    |
 LL | fn dynamic() -> Box<dyn use<>> {}
    |                         ^^^^^
 
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/illegal-positions.rs:5:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: `use<...>` precise capturing syntax not allowed in argument-position `impl Trait`
-  --> $DIR/illegal-positions.rs:17:26
+  --> $DIR/illegal-positions.rs:16:26
    |
 LL | fn fun<T: use<>>(_: impl use<>) where (): use<> {}
    |                          ^^^^^
 
 error[E0224]: at least one trait is required for an object type
-  --> $DIR/illegal-positions.rs:24:21
+  --> $DIR/illegal-positions.rs:23:21
    |
 LL | fn dynamic() -> Box<dyn use<>> {}
    |                     ^^^^^^^^^
 
-error: aborting due to 9 previous errors; 1 warning emitted
+error: aborting due to 9 previous errors
 
 For more information about this error, try `rustc --explain E0224`.
diff --git a/tests/ui/impl-trait/precise-capturing/illegal-positions.rs b/tests/ui/impl-trait/precise-capturing/illegal-positions.rs
index 58f7a02cd87..681458e25f8 100644
--- a/tests/ui/impl-trait/precise-capturing/illegal-positions.rs
+++ b/tests/ui/impl-trait/precise-capturing/illegal-positions.rs
@@ -3,7 +3,6 @@
 //@ edition: 2021
 
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 #[cfg(real)]
 trait Foo: use<> {
diff --git a/tests/ui/impl-trait/precise-capturing/ordering.rs b/tests/ui/impl-trait/precise-capturing/ordering.rs
index ff326ae6d02..eb570a120cc 100644
--- a/tests/ui/impl-trait/precise-capturing/ordering.rs
+++ b/tests/ui/impl-trait/precise-capturing/ordering.rs
@@ -1,5 +1,4 @@
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn lt<'a>() -> impl Sized + use<'a, 'a> {}
 //~^ ERROR cannot capture parameter `'a` twice
diff --git a/tests/ui/impl-trait/precise-capturing/ordering.stderr b/tests/ui/impl-trait/precise-capturing/ordering.stderr
index 65059b854b3..ecd47159059 100644
--- a/tests/ui/impl-trait/precise-capturing/ordering.stderr
+++ b/tests/ui/impl-trait/precise-capturing/ordering.stderr
@@ -1,37 +1,28 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/ordering.rs:1:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 error: cannot capture parameter `'a` twice
-  --> $DIR/ordering.rs:4:33
+  --> $DIR/ordering.rs:3:33
    |
 LL | fn lt<'a>() -> impl Sized + use<'a, 'a> {}
    |                                 ^^  -- parameter captured again here
 
 error: cannot capture parameter `T` twice
-  --> $DIR/ordering.rs:7:32
+  --> $DIR/ordering.rs:6:32
    |
 LL | fn ty<T>() -> impl Sized + use<T, T> {}
    |                                ^  - parameter captured again here
 
 error: cannot capture parameter `N` twice
-  --> $DIR/ordering.rs:10:45
+  --> $DIR/ordering.rs:9:45
    |
 LL | fn ct<const N: usize>() -> impl Sized + use<N, N> {}
    |                                             ^  - parameter captured again here
 
 error: lifetime parameter `'a` must be listed before non-lifetime parameters
-  --> $DIR/ordering.rs:13:45
+  --> $DIR/ordering.rs:12:45
    |
 LL | fn ordering<'a, T>() -> impl Sized + use<T, 'a> {}
    |                                          -  ^^
    |                                          |
    |                                          move the lifetime before this parameter
 
-error: aborting due to 4 previous errors; 1 warning emitted
+error: aborting due to 4 previous errors
 
diff --git a/tests/ui/impl-trait/precise-capturing/outlives.rs b/tests/ui/impl-trait/precise-capturing/outlives.rs
index c316a869ec5..26ac922b5b9 100644
--- a/tests/ui/impl-trait/precise-capturing/outlives.rs
+++ b/tests/ui/impl-trait/precise-capturing/outlives.rs
@@ -3,7 +3,6 @@
 // Show that precise captures allow us to skip a lifetime param for outlives
 
 #![feature(lifetime_capture_rules_2024, precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn hello<'a: 'a, 'b: 'b>() -> impl Sized + use<'a> { }
 
diff --git a/tests/ui/impl-trait/precise-capturing/outlives.stderr b/tests/ui/impl-trait/precise-capturing/outlives.stderr
deleted file mode 100644
index 405c09cccd9..00000000000
--- a/tests/ui/impl-trait/precise-capturing/outlives.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/outlives.rs:5:41
-   |
-LL | #![feature(lifetime_capture_rules_2024, precise_capturing)]
-   |                                         ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-warning: 1 warning emitted
-
diff --git a/tests/ui/impl-trait/precise-capturing/redundant.rs b/tests/ui/impl-trait/precise-capturing/redundant.rs
index 30acfe77e2e..99c128fdc48 100644
--- a/tests/ui/impl-trait/precise-capturing/redundant.rs
+++ b/tests/ui/impl-trait/precise-capturing/redundant.rs
@@ -2,7 +2,6 @@
 //@ check-pass
 
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 fn hello<'a>() -> impl Sized + use<'a> {}
 //~^ WARN all possible in-scope parameters are already captured
diff --git a/tests/ui/impl-trait/precise-capturing/redundant.stderr b/tests/ui/impl-trait/precise-capturing/redundant.stderr
index d100fd02053..274d9d2375f 100644
--- a/tests/ui/impl-trait/precise-capturing/redundant.stderr
+++ b/tests/ui/impl-trait/precise-capturing/redundant.stderr
@@ -1,14 +1,5 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/redundant.rs:4:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
 warning: all possible in-scope parameters are already captured, so `use<...>` syntax is redundant
-  --> $DIR/redundant.rs:7:19
+  --> $DIR/redundant.rs:6:19
    |
 LL | fn hello<'a>() -> impl Sized + use<'a> {}
    |                   ^^^^^^^^^^^^^-------
@@ -18,7 +9,7 @@ LL | fn hello<'a>() -> impl Sized + use<'a> {}
    = note: `#[warn(impl_trait_redundant_captures)]` on by default
 
 warning: all possible in-scope parameters are already captured, so `use<...>` syntax is redundant
-  --> $DIR/redundant.rs:12:27
+  --> $DIR/redundant.rs:11:27
    |
 LL |     fn inherent(&self) -> impl Sized + use<'_> {}
    |                           ^^^^^^^^^^^^^-------
@@ -26,7 +17,7 @@ LL |     fn inherent(&self) -> impl Sized + use<'_> {}
    |                                        help: remove the `use<...>` syntax
 
 warning: all possible in-scope parameters are already captured, so `use<...>` syntax is redundant
-  --> $DIR/redundant.rs:17:22
+  --> $DIR/redundant.rs:16:22
    |
 LL |     fn in_trait() -> impl Sized + use<'a, Self>;
    |                      ^^^^^^^^^^^^^-------------
@@ -34,12 +25,12 @@ LL |     fn in_trait() -> impl Sized + use<'a, Self>;
    |                                   help: remove the `use<...>` syntax
 
 warning: all possible in-scope parameters are already captured, so `use<...>` syntax is redundant
-  --> $DIR/redundant.rs:21:22
+  --> $DIR/redundant.rs:20:22
    |
 LL |     fn in_trait() -> impl Sized + use<'a> {}
    |                      ^^^^^^^^^^^^^-------
    |                                   |
    |                                   help: remove the `use<...>` syntax
 
-warning: 5 warnings emitted
+warning: 4 warnings emitted
 
diff --git a/tests/ui/impl-trait/precise-capturing/self-capture.rs b/tests/ui/impl-trait/precise-capturing/self-capture.rs
index 1dbbcadff6d..e0a4a8b658c 100644
--- a/tests/ui/impl-trait/precise-capturing/self-capture.rs
+++ b/tests/ui/impl-trait/precise-capturing/self-capture.rs
@@ -1,7 +1,6 @@
 //@ check-pass
 
 #![feature(precise_capturing)]
-//~^ WARN the feature `precise_capturing` is incomplete
 
 trait Foo {
     fn bar<'a>() -> impl Sized + use<Self>;
diff --git a/tests/ui/impl-trait/precise-capturing/self-capture.stderr b/tests/ui/impl-trait/precise-capturing/self-capture.stderr
deleted file mode 100644
index 5a058c6826d..00000000000
--- a/tests/ui/impl-trait/precise-capturing/self-capture.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `precise_capturing` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/self-capture.rs:3:12
-   |
-LL | #![feature(precise_capturing)]
-   |            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #123432 <https://github.com/rust-lang/rust/issues/123432> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-warning: 1 warning emitted
-