about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libcore/lib.rs2
-rw-r--r--src/libcore/tests/lib.rs2
-rw-r--r--src/librustc/hir/lowering.rs13
-rw-r--r--src/librustc/lib.rs2
-rw-r--r--src/librustc_data_structures/lib.rs2
-rw-r--r--src/librustc_mir/lib.rs2
-rw-r--r--src/libsyntax/feature_gate.rs7
-rw-r--r--src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.rs27
-rw-r--r--src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.stderr15
-rw-r--r--src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.rs21
-rw-r--r--src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.stderr15
-rw-r--r--src/test/ui/feature-gates/feature-gate-in_band_lifetimes.rs3
-rw-r--r--src/test/ui/feature-gates/feature-gate-in_band_lifetimes.stderr34
-rw-r--r--src/test/ui/impl-header-lifetime-elision/assoc-type.rs2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/assoc-type.stderr4
-rw-r--r--src/test/ui/impl-header-lifetime-elision/dyn-trait.rs2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr6
-rw-r--r--src/test/ui/impl-header-lifetime-elision/explicit-and-elided-same-header.rs2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/path-elided.rs2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/path-elided.stderr2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/path-underscore.rs2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/ref-underscore.rs2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/trait-elided.rs2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/trait-elided.stderr2
-rw-r--r--src/test/ui/impl-header-lifetime-elision/trait-underscore.rs2
-rw-r--r--src/test/ui/nll/issue-52742.rs1
-rw-r--r--src/test/ui/nll/issue-52742.stderr2
27 files changed, 37 insertions, 141 deletions
diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs
index 59cc312bee5..4156b1bec92 100644
--- a/src/libcore/lib.rs
+++ b/src/libcore/lib.rs
@@ -87,7 +87,7 @@
 #![feature(doc_spotlight)]
 #![feature(extern_types)]
 #![feature(fundamental)]
-#![feature(impl_header_lifetime_elision)]
+#![cfg_attr(stage0, feature(impl_header_lifetime_elision))]
 #![feature(intrinsics)]
 #![feature(lang_items)]
 #![feature(link_llvm_intrinsics)]
diff --git a/src/libcore/tests/lib.rs b/src/libcore/tests/lib.rs
index 965bd545eed..d340924aab1 100644
--- a/src/libcore/tests/lib.rs
+++ b/src/libcore/tests/lib.rs
@@ -19,7 +19,7 @@
 #![feature(flt2dec)]
 #![feature(fmt_internals)]
 #![feature(hashmap_internals)]
-#![feature(impl_header_lifetime_elision)]
+#![cfg_attr(stage0, feature(impl_header_lifetime_elision))]
 #![feature(pattern)]
 #![feature(range_is_empty)]
 #![feature(raw)]
diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs
index da5979e699a..1daea18d053 100644
--- a/src/librustc/hir/lowering.rs
+++ b/src/librustc/hir/lowering.rs
@@ -125,9 +125,8 @@ pub struct LoweringContext<'a> {
 
     // Whether or not in-band lifetimes are being collected. This is used to
     // indicate whether or not we're in a place where new lifetimes will result
-    // in in-band lifetime definitions, such a function or an impl header.
-    // This will always be false unless the `in_band_lifetimes` or
-    // `impl_header_lifetime_elision` feature is enabled.
+    // in in-band lifetime definitions, such a function or an impl header,
+    // including implicit lifetimes from `impl_header_lifetime_elision`.
     is_collecting_in_band_lifetimes: bool,
 
     // Currently in-scope lifetimes defined in impl headers, fn headers, or HRTB.
@@ -709,12 +708,8 @@ impl<'a> LoweringContext<'a> {
         assert!(self.lifetimes_to_define.is_empty());
         let old_anonymous_lifetime_mode = self.anonymous_lifetime_mode;
 
-        if self.sess.features_untracked().impl_header_lifetime_elision {
-            self.anonymous_lifetime_mode = anonymous_lifetime_mode;
-            self.is_collecting_in_band_lifetimes = true;
-        } else if self.sess.features_untracked().in_band_lifetimes {
-            self.is_collecting_in_band_lifetimes = true;
-        }
+        self.anonymous_lifetime_mode = anonymous_lifetime_mode;
+        self.is_collecting_in_band_lifetimes = true;
 
         let (in_band_ty_params, res) = f(self);
 
diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs
index 3c2caa39d76..d8defabd3fe 100644
--- a/src/librustc/lib.rs
+++ b/src/librustc/lib.rs
@@ -67,7 +67,7 @@
 #![feature(step_trait)]
 #![feature(integer_atomics)]
 #![feature(test)]
-#![feature(impl_header_lifetime_elision)]
+#![cfg_attr(stage0, feature(impl_header_lifetime_elision))]
 #![feature(in_band_lifetimes)]
 #![feature(macro_at_most_once_rep)]
 #![feature(crate_visibility_modifier)]
diff --git a/src/librustc_data_structures/lib.rs b/src/librustc_data_structures/lib.rs
index 5b01892dcb3..b197d29b184 100644
--- a/src/librustc_data_structures/lib.rs
+++ b/src/librustc_data_structures/lib.rs
@@ -21,7 +21,7 @@
       html_root_url = "https://doc.rust-lang.org/nightly/")]
 
 #![feature(in_band_lifetimes)]
-#![feature(impl_header_lifetime_elision)]
+#![cfg_attr(stage0, feature(impl_header_lifetime_elision))]
 #![feature(unboxed_closures)]
 #![feature(fn_traits)]
 #![feature(unsize)]
diff --git a/src/librustc_mir/lib.rs b/src/librustc_mir/lib.rs
index b3ef9eab801..2f44dff2e22 100644
--- a/src/librustc_mir/lib.rs
+++ b/src/librustc_mir/lib.rs
@@ -16,7 +16,7 @@ Rust MIR: a lowered representation of Rust. Also: an experiment!
 
 #![feature(nll)]
 #![feature(in_band_lifetimes)]
-#![feature(impl_header_lifetime_elision)]
+#![cfg_attr(stage0, feature(impl_header_lifetime_elision))]
 #![feature(slice_patterns)]
 #![feature(slice_sort_by_cached_key)]
 #![feature(box_patterns)]
diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs
index 84122688c83..90a5a4cef21 100644
--- a/src/libsyntax/feature_gate.rs
+++ b/src/libsyntax/feature_gate.rs
@@ -462,10 +462,6 @@ declare_features! (
 
     (active, abi_amdgpu_kernel, "1.29.0", Some(51575), None),
 
-    // impl<I:Iterator> Iterator for &mut Iterator
-    // impl Debug for Foo<'_>
-    (active, impl_header_lifetime_elision, "1.30.0", Some(15872), Some(Edition::Edition2018)),
-
     // Support for arbitrary delimited token streams in non-macro attributes
     (active, unrestricted_attribute_tokens, "1.30.0", Some(44690), None),
 
@@ -684,6 +680,9 @@ declare_features! (
     (accepted, min_const_fn, "1.31.0", Some(53555), None),
     // Scoped lints
     (accepted, tool_lints, "1.31.0", Some(44690), None),
+    // impl<I:Iterator> Iterator for &mut Iterator
+    // impl Debug for Foo<'_>
+    (accepted, impl_header_lifetime_elision, "1.31.0", Some(15872), None),
 );
 
 // If you change this, please modify src/doc/unstable-book as well. You must
diff --git a/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.rs b/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.rs
deleted file mode 100644
index b7e07e1dca6..00000000000
--- a/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2017 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 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![allow(warnings)]
-
-// Make sure this related feature didn't accidentally enable this
-#![feature(in_band_lifetimes)]
-
-trait MyTrait<'a> { }
-
-impl MyTrait<'a> for &u32 { }
-//~^ ERROR missing lifetime specifier
-
-struct MyStruct;
-trait MarkerTrait {}
-
-impl MarkerTrait for &'_ MyStruct { }
-//~^ ERROR missing lifetime specifier
-
-fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.stderr b/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.stderr
deleted file mode 100644
index 9487d11d505..00000000000
--- a/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0106]: missing lifetime specifier
-  --> $DIR/feature-gate-impl_header_lifetime_elision-with-in_band.rs:18:22
-   |
-LL | impl MyTrait<'a> for &u32 { }
-   |                      ^ expected lifetime parameter
-
-error[E0106]: missing lifetime specifier
-  --> $DIR/feature-gate-impl_header_lifetime_elision-with-in_band.rs:24:23
-   |
-LL | impl MarkerTrait for &'_ MyStruct { }
-   |                       ^^ expected lifetime parameter
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.rs b/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.rs
deleted file mode 100644
index 3eb2ac1b008..00000000000
--- a/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2017 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 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![allow(warnings)]
-
-trait MyTrait<'a> { }
-
-impl<'a> MyTrait<'a> for &u32 { }
-//~^ ERROR missing lifetime specifier
-
-impl<'a> MyTrait<'_> for &'a f32 { }
-//~^ ERROR missing lifetime specifier
-
-fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.stderr b/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.stderr
deleted file mode 100644
index 2c8a7dd4305..00000000000
--- a/src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0106]: missing lifetime specifier
-  --> $DIR/feature-gate-impl_header_lifetime_elision.rs:15:26
-   |
-LL | impl<'a> MyTrait<'a> for &u32 { }
-   |                          ^ expected lifetime parameter
-
-error[E0106]: missing lifetime specifier
-  --> $DIR/feature-gate-impl_header_lifetime_elision.rs:18:18
-   |
-LL | impl<'a> MyTrait<'_> for &'a f32 { }
-   |                  ^^ expected lifetime parameter
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/ui/feature-gates/feature-gate-in_band_lifetimes.rs b/src/test/ui/feature-gates/feature-gate-in_band_lifetimes.rs
index 23b30711cf3..ae1f81c2f57 100644
--- a/src/test/ui/feature-gates/feature-gate-in_band_lifetimes.rs
+++ b/src/test/ui/feature-gates/feature-gate-in_band_lifetimes.rs
@@ -10,9 +10,6 @@
 
 #![allow(warnings)]
 
-// Make sure this related feature didn't accidentally enable this
-#![feature(impl_header_lifetime_elision)]
-
 fn foo(x: &'x u8) -> &'x u8 { x }
 //~^ ERROR use of undeclared lifetime name
 //~^^ ERROR use of undeclared lifetime name
diff --git a/src/test/ui/feature-gates/feature-gate-in_band_lifetimes.stderr b/src/test/ui/feature-gates/feature-gate-in_band_lifetimes.stderr
index 5fe143959d2..cc0855306e1 100644
--- a/src/test/ui/feature-gates/feature-gate-in_band_lifetimes.stderr
+++ b/src/test/ui/feature-gates/feature-gate-in_band_lifetimes.stderr
@@ -1,101 +1,101 @@
 error[E0261]: use of undeclared lifetime name `'x`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:16:12
+  --> $DIR/feature-gate-in_band_lifetimes.rs:13:12
    |
 LL | fn foo(x: &'x u8) -> &'x u8 { x }
    |            ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'x`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:16:23
+  --> $DIR/feature-gate-in_band_lifetimes.rs:13:23
    |
 LL | fn foo(x: &'x u8) -> &'x u8 { x }
    |                       ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:28:12
+  --> $DIR/feature-gate-in_band_lifetimes.rs:25:12
    |
 LL | impl<'a> X<'b> {
    |            ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:30:27
+  --> $DIR/feature-gate-in_band_lifetimes.rs:27:27
    |
 LL |     fn inner_2(&self) -> &'b u8 {
    |                           ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:36:8
+  --> $DIR/feature-gate-in_band_lifetimes.rs:33:8
    |
 LL | impl X<'b> {
    |        ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:38:27
+  --> $DIR/feature-gate-in_band_lifetimes.rs:35:27
    |
 LL |     fn inner_3(&self) -> &'b u8 {
    |                           ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'a`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:46:9
+  --> $DIR/feature-gate-in_band_lifetimes.rs:43:9
    |
 LL | impl Y<&'a u8> {
    |         ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'a`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:48:25
+  --> $DIR/feature-gate-in_band_lifetimes.rs:45:25
    |
 LL |     fn inner(&self) -> &'a u8 {
    |                         ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:56:27
+  --> $DIR/feature-gate-in_band_lifetimes.rs:53:27
    |
 LL |     fn any_lifetime() -> &'b u8;
    |                           ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:58:27
+  --> $DIR/feature-gate-in_band_lifetimes.rs:55:27
    |
 LL |     fn borrowed_lifetime(&'b self) -> &'b u8;
    |                           ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:58:40
+  --> $DIR/feature-gate-in_band_lifetimes.rs:55:40
    |
 LL |     fn borrowed_lifetime(&'b self) -> &'b u8;
    |                                        ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'a`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:63:14
+  --> $DIR/feature-gate-in_band_lifetimes.rs:60:14
    |
 LL | impl MyTrait<'a> for Y<&'a u8> {
    |              ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'a`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:63:25
+  --> $DIR/feature-gate-in_band_lifetimes.rs:60:25
    |
 LL | impl MyTrait<'a> for Y<&'a u8> {
    |                         ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'a`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:66:31
+  --> $DIR/feature-gate-in_band_lifetimes.rs:63:31
    |
 LL |     fn my_lifetime(&self) -> &'a u8 { self.0 }
    |                               ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:68:27
+  --> $DIR/feature-gate-in_band_lifetimes.rs:65:27
    |
 LL |     fn any_lifetime() -> &'b u8 { &0 }
    |                           ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:70:27
+  --> $DIR/feature-gate-in_band_lifetimes.rs:67:27
    |
 LL |     fn borrowed_lifetime(&'b self) -> &'b u8 { &*self.0 }
    |                           ^^ undeclared lifetime
 
 error[E0261]: use of undeclared lifetime name `'b`
-  --> $DIR/feature-gate-in_band_lifetimes.rs:70:40
+  --> $DIR/feature-gate-in_band_lifetimes.rs:67:40
    |
 LL |     fn borrowed_lifetime(&'b self) -> &'b u8 { &*self.0 }
    |                                        ^^ undeclared lifetime
diff --git a/src/test/ui/impl-header-lifetime-elision/assoc-type.rs b/src/test/ui/impl-header-lifetime-elision/assoc-type.rs
index 15cf07771f2..49f528df8f6 100644
--- a/src/test/ui/impl-header-lifetime-elision/assoc-type.rs
+++ b/src/test/ui/impl-header-lifetime-elision/assoc-type.rs
@@ -13,8 +13,6 @@
 
 #![allow(warnings)]
 
-#![feature(impl_header_lifetime_elision)]
-
 trait MyTrait {
     type Output;
 }
diff --git a/src/test/ui/impl-header-lifetime-elision/assoc-type.stderr b/src/test/ui/impl-header-lifetime-elision/assoc-type.stderr
index 59b2cfd2226..022b8bc717b 100644
--- a/src/test/ui/impl-header-lifetime-elision/assoc-type.stderr
+++ b/src/test/ui/impl-header-lifetime-elision/assoc-type.stderr
@@ -1,11 +1,11 @@
 error[E0106]: missing lifetime specifier
-  --> $DIR/assoc-type.rs:23:19
+  --> $DIR/assoc-type.rs:21:19
    |
 LL |     type Output = &i32;
    |                   ^ expected lifetime parameter
 
 error[E0106]: missing lifetime specifier
-  --> $DIR/assoc-type.rs:28:20
+  --> $DIR/assoc-type.rs:26:20
    |
 LL |     type Output = &'_ i32;
    |                    ^^ expected lifetime parameter
diff --git a/src/test/ui/impl-header-lifetime-elision/dyn-trait.rs b/src/test/ui/impl-header-lifetime-elision/dyn-trait.rs
index 661bfa8bdcc..384c08ff5bb 100644
--- a/src/test/ui/impl-header-lifetime-elision/dyn-trait.rs
+++ b/src/test/ui/impl-header-lifetime-elision/dyn-trait.rs
@@ -13,8 +13,6 @@
 
 #![allow(warnings)]
 
-#![feature(impl_header_lifetime_elision)]
-
 use std::fmt::Debug;
 
 // Equivalent to `Box<dyn Debug + 'static>`:
diff --git a/src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr b/src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr
index 3e54ebeb398..f0e174a1207 100644
--- a/src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr
+++ b/src/test/ui/impl-header-lifetime-elision/dyn-trait.stderr
@@ -1,11 +1,11 @@
 error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
-  --> $DIR/dyn-trait.rs:32:16
+  --> $DIR/dyn-trait.rs:30:16
    |
 LL |     static_val(x); //~ ERROR cannot infer
    |                ^
    |
-note: first, the lifetime cannot outlive the lifetime 'a as defined on the function body at 31:26...
-  --> $DIR/dyn-trait.rs:31:26
+note: first, the lifetime cannot outlive the lifetime 'a as defined on the function body at 29:26...
+  --> $DIR/dyn-trait.rs:29:26
    |
 LL | fn with_dyn_debug_static<'a>(x: Box<dyn Debug + 'a>) {
    |                          ^^
diff --git a/src/test/ui/impl-header-lifetime-elision/explicit-and-elided-same-header.rs b/src/test/ui/impl-header-lifetime-elision/explicit-and-elided-same-header.rs
index 56dd6691abb..c0d454d9426 100644
--- a/src/test/ui/impl-header-lifetime-elision/explicit-and-elided-same-header.rs
+++ b/src/test/ui/impl-header-lifetime-elision/explicit-and-elided-same-header.rs
@@ -12,8 +12,6 @@
 
 #![allow(warnings)]
 
-#![feature(impl_header_lifetime_elision)]
-
 // This works for functions...
 fn foo<'a>(x: &str, y: &'a str) {}
 
diff --git a/src/test/ui/impl-header-lifetime-elision/path-elided.rs b/src/test/ui/impl-header-lifetime-elision/path-elided.rs
index f88c899065c..b68a0f375f6 100644
--- a/src/test/ui/impl-header-lifetime-elision/path-elided.rs
+++ b/src/test/ui/impl-header-lifetime-elision/path-elided.rs
@@ -9,8 +9,6 @@
 // except according to those terms.
 #![allow(warnings)]
 
-#![feature(impl_header_lifetime_elision)]
-
 trait MyTrait { }
 
 struct Foo<'a> { x: &'a u32 }
diff --git a/src/test/ui/impl-header-lifetime-elision/path-elided.stderr b/src/test/ui/impl-header-lifetime-elision/path-elided.stderr
index 6c1d72411bf..03e8f8c9ad5 100644
--- a/src/test/ui/impl-header-lifetime-elision/path-elided.stderr
+++ b/src/test/ui/impl-header-lifetime-elision/path-elided.stderr
@@ -1,5 +1,5 @@
 error[E0106]: missing lifetime specifier
-  --> $DIR/path-elided.rs:18:18
+  --> $DIR/path-elided.rs:16:18
    |
 LL | impl MyTrait for Foo {
    |                  ^^^ expected lifetime parameter
diff --git a/src/test/ui/impl-header-lifetime-elision/path-underscore.rs b/src/test/ui/impl-header-lifetime-elision/path-underscore.rs
index 38118f0d213..b2c7a415efe 100644
--- a/src/test/ui/impl-header-lifetime-elision/path-underscore.rs
+++ b/src/test/ui/impl-header-lifetime-elision/path-underscore.rs
@@ -14,8 +14,6 @@
 
 #![allow(warnings)]
 
-#![feature(impl_header_lifetime_elision)]
-
 trait MyTrait { }
 
 struct Foo<'a> { x: &'a u32 }
diff --git a/src/test/ui/impl-header-lifetime-elision/ref-underscore.rs b/src/test/ui/impl-header-lifetime-elision/ref-underscore.rs
index 96a56aacd87..e62e7dc56a4 100644
--- a/src/test/ui/impl-header-lifetime-elision/ref-underscore.rs
+++ b/src/test/ui/impl-header-lifetime-elision/ref-underscore.rs
@@ -14,8 +14,6 @@
 
 #![allow(warnings)]
 
-#![feature(impl_header_lifetime_elision)]
-
 trait MyTrait { }
 
 impl MyTrait for &i32 {
diff --git a/src/test/ui/impl-header-lifetime-elision/trait-elided.rs b/src/test/ui/impl-header-lifetime-elision/trait-elided.rs
index afdf2200d90..1fb57b96ba9 100644
--- a/src/test/ui/impl-header-lifetime-elision/trait-elided.rs
+++ b/src/test/ui/impl-header-lifetime-elision/trait-elided.rs
@@ -9,8 +9,6 @@
 // except according to those terms.
 #![allow(warnings)]
 
-#![feature(impl_header_lifetime_elision)]
-
 trait MyTrait<'a> { }
 
 impl MyTrait for u32 {
diff --git a/src/test/ui/impl-header-lifetime-elision/trait-elided.stderr b/src/test/ui/impl-header-lifetime-elision/trait-elided.stderr
index fe3ded8e04c..7138b321f97 100644
--- a/src/test/ui/impl-header-lifetime-elision/trait-elided.stderr
+++ b/src/test/ui/impl-header-lifetime-elision/trait-elided.stderr
@@ -1,5 +1,5 @@
 error[E0106]: missing lifetime specifier
-  --> $DIR/trait-elided.rs:16:6
+  --> $DIR/trait-elided.rs:14:6
    |
 LL | impl MyTrait for u32 {
    |      ^^^^^^^ expected lifetime parameter
diff --git a/src/test/ui/impl-header-lifetime-elision/trait-underscore.rs b/src/test/ui/impl-header-lifetime-elision/trait-underscore.rs
index 98242ff6577..54d23f5f4de 100644
--- a/src/test/ui/impl-header-lifetime-elision/trait-underscore.rs
+++ b/src/test/ui/impl-header-lifetime-elision/trait-underscore.rs
@@ -15,8 +15,6 @@
 
 #![allow(warnings)]
 
-#![feature(impl_header_lifetime_elision)]
-
 trait MyTrait<'a> { }
 
 // This is equivalent to `MyTrait<'a> for &'b i32`, which is proven by
diff --git a/src/test/ui/nll/issue-52742.rs b/src/test/ui/nll/issue-52742.rs
index c36e4cc70fd..84d06a1d20a 100644
--- a/src/test/ui/nll/issue-52742.rs
+++ b/src/test/ui/nll/issue-52742.rs
@@ -10,7 +10,6 @@
 
 #![feature(nll)]
 #![feature(in_band_lifetimes)]
-#![feature(impl_header_lifetime_elision)]
 
 struct Foo<'a, 'b> {
     x: &'a u32,
diff --git a/src/test/ui/nll/issue-52742.stderr b/src/test/ui/nll/issue-52742.stderr
index 83a594941c0..ccd6ec5cb77 100644
--- a/src/test/ui/nll/issue-52742.stderr
+++ b/src/test/ui/nll/issue-52742.stderr
@@ -1,5 +1,5 @@
 error: unsatisfied lifetime constraints
-  --> $DIR/issue-52742.rs:26:9
+  --> $DIR/issue-52742.rs:25:9
    |
 LL |     fn take_bar(&mut self, b: Bar<'_>) {
    |                 ---------         -- let's call this `'1`