From 37393576eced8680065d2ae629a6e96912a782f9 Mon Sep 17 00:00:00 2001 From: Scott McMurray Date: Wed, 3 Oct 2018 00:27:12 -0700 Subject: [PATCH] Stabilize impl_header_lifetime_elision in 2015 It's already stable in 2018; this finishes the stabilization. --- src/libcore/lib.rs | 2 +- src/libcore/tests/lib.rs | 2 +- src/librustc/hir/lowering.rs | 13 +++---- src/librustc/lib.rs | 2 +- src/librustc_data_structures/lib.rs | 2 +- src/librustc_mir/lib.rs | 2 +- src/libsyntax/feature_gate.rs | 7 ++-- ...pl_header_lifetime_elision-with-in_band.rs | 27 --------------- ...eader_lifetime_elision-with-in_band.stderr | 15 -------- ...ature-gate-impl_header_lifetime_elision.rs | 21 ------------ ...e-gate-impl_header_lifetime_elision.stderr | 15 -------- .../feature-gate-in_band_lifetimes.rs | 3 -- .../feature-gate-in_band_lifetimes.stderr | 34 +++++++++---------- .../assoc-type.rs | 2 -- .../assoc-type.stderr | 4 +-- .../impl-header-lifetime-elision/dyn-trait.rs | 2 -- .../dyn-trait.stderr | 6 ++-- .../explicit-and-elided-same-header.rs | 2 -- .../path-elided.rs | 2 -- .../path-elided.stderr | 2 +- .../path-underscore.rs | 2 -- .../ref-underscore.rs | 2 -- .../trait-elided.rs | 2 -- .../trait-elided.stderr | 2 +- .../trait-underscore.rs | 2 -- src/test/ui/nll/issue-52742.rs | 1 - src/test/ui/nll/issue-52742.stderr | 2 +- 27 files changed, 37 insertions(+), 141 deletions(-) delete mode 100644 src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.rs delete mode 100644 src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision-with-in_band.stderr delete mode 100644 src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.rs delete mode 100644 src/test/ui/feature-gates/feature-gate-impl_header_lifetime_elision.stderr diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs index 59cc312bee5fc..4156b1bec92a0 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 965bd545eed59..d340924aab1db 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 da5979e699aa1..1daea18d05319 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 3c2caa39d76e0..d8defabd3fe66 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 5b01892dcb37e..b197d29b184de 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 b3ef9eab8017d..2f44dff2e22c3 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 84122688c83d2..90a5a4cef2186 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 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 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 b7e07e1dca674..0000000000000 --- 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 or the MIT license -// , 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 9487d11d505ca..0000000000000 --- 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 3eb2ac1b00851..0000000000000 --- 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 or the MIT license -// , 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 2c8a7dd4305a7..0000000000000 --- 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 23b30711cf3c0..ae1f81c2f5721 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 5fe143959d2c5..cc0855306e162 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 15cf07771f268..49f528df8f6cc 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 59b2cfd2226db..022b8bc717b96 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 661bfa8bdcc9b..384c08ff5bb38 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`: 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 3e54ebeb398d6..f0e174a12074d 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) { | ^^ 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 56dd6691abbe5..c0d454d942646 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 f88c899065c1b..b68a0f375f60d 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 6c1d72411bf57..03e8f8c9ad5d2 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 38118f0d21333..b2c7a415efe98 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 96a56aacd87cc..e62e7dc56a4af 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 afdf2200d909a..1fb57b96ba9b4 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 fe3ded8e04c33..7138b321f97d4 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 98242ff657795..54d23f5f4dea8 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 c36e4cc70fd58..84d06a1d20aac 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 83a594941c0a5..ccd6ec5cb77fa 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`