Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stabilize macro_lifetime_matcher #50385

Merged
merged 3 commits into from
May 14, 2018
Merged

Conversation

durka
Copy link
Contributor

@durka durka commented May 2, 2018

This stabilizes :lifetime which has completed FCP in #34303.

@rust-highfive
Copy link
Collaborator

r? @nikomatsakis

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 2, 2018
@rust-highfive

This comment has been minimized.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-3.9 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:05:42]    Compiling arena v0.0.0 (file:///checkout/src/libarena)
[00:05:46]    Compiling rustc_errors v0.0.0 (file:///checkout/src/librustc_errors)
[00:07:18]    Compiling proc_macro v0.0.0 (file:///checkout/src/libproc_macro)
[00:07:38]    Compiling syntax_ext v0.0.0 (file:///checkout/src/libsyntax_ext)
[00:07:39] error[E0658]: :lifetime fragment specifier is experimental and subject to change (see issue #46895)
[00:07:39]    --> librustc/macros.rs:123:11
[00:07:39]     |
[00:07:39] 123 |     (impl<$tcx:lifetime $(, $T:ident)*> for struct $struct_name:path {
[00:07:39]     |
[00:07:39]     |
[00:07:39]     = help: add #![feature(macro_lifetime_matcher)] to the crate attributes to enable
[00:07:39] 
[00:07:39] error[E0658]: :lifetime fragment specifier is experimental and subject to change (see issue #46895)
[00:07:39]    --> librustc/macros.rs:168:11
[00:07:39]     |
[00:07:39] 168 |     (for <$tcx:lifetime> { $($ty:ty,)+ }) => {
[00:07:39]     |
[00:07:39]     |
[00:07:39]     = help: add #![feature(macro_lifetime_matcher)] to the crate attributes to enable
[00:07:39] 
[00:07:39] error[E0658]: :lifetime fragment specifier is experimental and subject to change (see issue #46895)
[00:07:39]    --> librustc/macros.rs:192:11
[00:07:39]     |
[00:07:39] 192 |     (for <$tcx:lifetime> { $($ty:ty,)+ }) => {
[00:07:39]     |
[00:07:39]     |
[00:07:39]     = help: add #![feature(macro_lifetime_matcher)] to the crate attributes to enable
[00:07:39] 
[00:07:42] error: unused import: `middle`
[00:07:42]   --> librustc/ich/impls_cstore.rs:14:5
[00:07:42] 14 | use middle;
[00:07:42]    |     ^^^^^^
[00:07:42]    |
[00:07:42]    = note: `-D unused-imports` implied by `-D warnings`
[00:07:42]    = note: `-D unused-imports` implied by `-D warnings`
[00:07:42] 
[00:07:42] error: unused import: `infer`
[00:07:42]   --> librustc/ich/impls_ty.rs:22:5
[00:07:42] 22 | use infer;
[00:07:42]    |     ^^^^^
[00:07:42] 
[00:07:42] 
[00:07:46] error[E0277]: the trait bound `hir::map::definitions::DefPathHash: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ich/hcx.rs:266:10
[00:07:46]     |
[00:07:46] 266 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for hir::HirId {
[00:07:46]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::map::definitions::DefPathHash`
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, hir::ItemLocalId)`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::ItemLocalId: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ich/hcx.rs:266:10
[00:07:46]     |
[00:07:46] 266 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for hir::HirId {
[00:07:46]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::ItemLocalId`
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, hir::ItemLocalId)`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::map::definitions::DefPathHash: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ich/hcx.rs:293:10
[00:07:46]     |
[00:07:46] 293 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for ast::NodeId {
[00:07:46]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::map::definitions::DefPathHash`
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, hir::ItemLocalId)`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::ItemLocalId: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ich/hcx.rs:293:10
[00:07:46]     |
[00:07:46] 293 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for ast::NodeId {
[00:07:46]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::ItemLocalId`
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, hir::ItemLocalId)`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::map::definitions::DefPathHash: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]   --> librustc/ich/impls_hir.rs:33:10
[00:07:46]    |
[00:07:46] 33 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for DefId {
[00:07:46]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::map::definitions::DefPathHash`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::map::definitions::DefPathHash: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]   --> librustc/ich/impls_hir.rs:51:10
[00:07:46]    |
[00:07:46] 51 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for LocalDefId {
[00:07:46]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::map::definitions::DefPathHash`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::map::definitions::DefPathHash: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]   --> librustc/ich/impls_hir.rs:72:10
[00:07:46]    |
[00:07:46] 72 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for CrateNum {
[00:07:46]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::map::definitions::DefPathHash`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::ItemLocalId: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]   --> librustc/ich/impls_hir.rs:84:10
[00:07:46]    |
[00:07:46] 84 | impl<'a> ToStableHashKey<StableHashingContext<'a>>
[00:07:46]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::ItemLocalId`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::map::definitions::DefPathHash: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ich/impls_hir.rs:977:10
[00:07:46]     |
[00:07:46] 977 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for hir::BodyId {
[00:07:46]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::map::definitions::DefPathHash`
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, hir::ItemLocalId)`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::ItemLocalId: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ich/impls_hir.rs:977:10
[00:07:46]     |
[00:07:46] 977 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for hir::BodyId {
[00:07:46]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::ItemLocalId`
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, hir::ItemLocalId)`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::map::definitions::DefPathHash: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]     --> librustc/ich/impls_hir.rs:1101:10
[00:07:46]      |
[00:07:46] 1101 | impl<'a> ToStableHashKey<StableHashingContext<'a>>
[00:07:46]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::map::definitions::DefPathHash`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::map::definitions::DefPathHash: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]     --> librustc/ich/impls_hir.rs:1150:10
[00:07:46]      |
[00:07:46] 1150 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for hir::TraitCandidate {
[00:07:46]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::map::definitions::DefPathHash`
[00:07:46]      |
[00:07:46]      = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, std::option::Option<(hir::map::definitions::DefPathHash, hir::ItemLocalId)>)`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::ItemLocalId: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]     --> librustc/ich/impls_hir.rs:1150:10
[00:07:46]      |
[00:07:46] 1150 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for hir::TraitCandidate {
[00:07:46]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::ItemLocalId`
[00:07:46]      |
[00:07:46]      = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, hir::ItemLocalId)`
[00:07:46]      = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::option::Option<(hir::map::definitions::DefPathHash, hir::ItemLocalId)>`
[00:07:46]      = note: required because of the requirements on the impl of `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `(hir::map::definitions::DefPathHash, std::option::Option<(hir::map::definitions::DefPathHash, hir::ItemLocalId)>)`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `middle::region::Scope: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ich/impls_ty.rs:822:10
[00:07:46]     |
[00:07:46] 822 | impl<'a> ToStableHashKey<StableHashingContext<'a>> for region::Scope {
[00:07:46]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `middle::region::Scope`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `session::config::OutputType: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/session/config.rs:129:16
[00:07:46]     |
[00:07:46] 129 | impl<'a, 'tcx> ToStableHashKey<StableHashingContext<'a>> for OutputType {
[00:07:46]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `session::config::OutputType`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `hir::Unsafety: ty::fold::TypeFoldable<'tcx>` is not satisfied
[00:07:46]    --> librustc/ty/relate.rs:188:12
[00:07:46]     |
[00:07:46] 188 | impl<'tcx> Relate<'tcx> for ast::Unsafety {
[00:07:46]     |            ^^^^^^^^^^^^ the trait `ty::fold::TypeFoldable<'tcx>` is not implemented for `hir::Unsafety`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `rustc_target::spec::abi::Abi: ty::fold::TypeFoldable<'tcx>` is not satisfied
[00:07:46]    --> librustc/ty/relate.rs:203:12
[00:07:46]     |
[00:07:46] 203 | impl<'tcx> Relate<'tcx> for abi::Abi {
[00:07:46]     |            ^^^^^^^^^^^^ the trait `ty::fold::TypeFoldable<'tcx>` is not implemented for `rustc_target::spec::abi::Abi`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::GenericPredicates<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::GenericPredicates<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::Destructor: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::Destructor`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::option::Option<ty::Destructor>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> traits::query::dropck_outlives::DtorckConstraint<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `traits::query::dropck_outlives::DtorckConstraint<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::result::Result<traits::query::dropck_outlives::DtorckConstraint<'_>, traits::query::NoSolution>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> traits::query::NoSolution: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `traits::query::NoSolution`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::result::Result<traits::query::dropck_outlives::DtorckConstraint<'_>, traits::query::NoSolution>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::Variance: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::Variance`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::vec::Vec<ty::Variance>`
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::rc::Rc<std::vec::Vec<ty::Variance>>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::AssociatedItem: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::AssociatedItem`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::sty::TraitRef<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::sty::TraitRef<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::option::Option<ty::sty::TraitRef<'_>>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> hir::ImplPolarity: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `hir::ImplPolarity`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> mir::Mir<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `mir::Mir<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `ty::steal::Steal<mir::Mir<'_>>`
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `&ty::steal::Steal<mir::Mir<'_>>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> mir::Mir<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `mir::Mir<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `&mir::Mir<'_>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> mir::UnsafetyCheckResult: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `mir::UnsafetyCheckResult`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::sty::FnSig<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::sty::FnSig<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `ty::sty::Binder<ty::sty::FnSig<'_>>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::adjustment::CoerceUnsizedInfo: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::adjustment::CoerceUnsizedInfo`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> session::CompileIncomplete: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `session::CompileIncomplete`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::result::Result<(), session::CompileIncomplete>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> mir::BorrowCheckResult<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `mir::BorrowCheckResult<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::CrateInherentImpls: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::CrateInherentImpls`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> middle::const_val::ConstEvalErr<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `middle::const_val::ConstEvalErr<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::result::Result<&ty::sty::Const<'_>, middle::const_val::ConstEvalErr<'_>>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> ty::sty::Const<'_>: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `ty::sty::Const<'_>`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
[00:07:46]     |
[00:07:46] 95  | / define_maps! { <'tcx>
[00:07:46] 96  | |     /// Records the type of every item.
[00:07:46] 97  | |     [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:46] ...   |
[00:07:46] ...   |
[00:07:46] 461 | |         -> Lrc<FxHashMap<DefId, String>>,
[00:07:46] 462 | | }
[00:07:46]     | |_- in this macro invocation
[00:07:46]     |
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `&ty::sty::Const<'_>`
[00:07:46]     = note: required because of the requirements on the impl of `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` for `std::result::Result<&ty::sty::Const<'_>, middle::const_val::ConstEvalErr<'_>>`
[00:07:46] 
[00:07:46] error[E0277]: the trait bound `for<'a> util::common::ErrorReported: rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not satisfied
[00:07:46]    --> librustc/ty/maps/plumbing.rs:700:22
[00:07:46]     |
[00:07:46] 700 |           $(impl<$tcx> QueryConfig<$tcx> for queries::$name<$tcx> {
[00:07:46]     |                        ^^^^^^^^^^^^^^^^^ the trait `for<'a> rustc_data_structures::stable_hasher::HashStable<ich::hcx::StableHashingContext<'a>>` is not implemented for `util::common::ErrorReported`
[00:07:46]     | 
[00:07:46]    ::: librustc/ty/maps/mod.rs:95:1
---
12160 ./src/llvm-emscripten/include/llvm
11900 ./src/tools/lld
11740 ./src/doc
10052 ./src/test/compile-fail
10012 ./src/llvm/test/MC/AMDGPU
9648 ./src/llvm/test/MC/Disassembler/AMDGPU
travis_time:end:1fb798e4:start=1525236537986986352,finish=1525236538185639211,duration=198652859
travis_fold:end:after_failure.1
travis_fold:start:after_failure.2
travis_time:start:00b7fde8

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@@ -50,7 +50,6 @@
#![feature(from_ref)]
#![feature(fs_read_write)]
#![cfg_attr(windows, feature(libc))]
#![feature(macro_lifetime_matcher)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You still need #![cfg_attr(stage0, feature(macro_lifetime_matcher))] for these.

@nikomatsakis
Copy link
Contributor

cc @rust-lang/docs -- what docs need updating for this? It's the stabilization of the lifetime matcher in macros.

@durka
Copy link
Contributor Author

durka commented May 2, 2018 via email

@nikomatsakis
Copy link
Contributor

r=me. @durka, feel free to r+ once this passes travis.

@bors delegate=durka

@bors
Copy link
Contributor

bors commented May 2, 2018

✌️ @durka can now approve this pull request

@nikomatsakis nikomatsakis added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 2, 2018
@GuillaumeGomez
Copy link
Member

In the rust book maybe?

@durka
Copy link
Contributor Author

durka commented May 2, 2018 via email

@petrochenkov
Copy link
Contributor

@bors r-
Could this wait for a week or two until some decision on #50473 (comment) is made?

@durka
Copy link
Contributor Author

durka commented May 8, 2018

Yeah, probably, since I haven't gotten around to adding the cfg(stage0) stuff yet. But I hope that the decision to merge :ident and :lifetime is not made, because it wouldn't be possible for macro_rules to tell the difference in that case. (I guess in a proc macro you can check the name, but that seems fragile.) Moreover, this code would change meaning:

macro_rules! m {
    (T: $i:ident) => { true };
    (T: $t:tt) => { false } // or $l:lifetime but it's not needed to see breakage from expanding :ident
}

m!(T: 'static)

@kennytm kennytm added S-blocked Status: Marked as blocked ❌ on something else such as an RFC or other implementation work. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 8, 2018
@durka
Copy link
Contributor Author

durka commented May 10, 2018

@petrochenkov that other thread is about the proc macro API. If you still want to merge ident and lifetime for macro_rules, can you explain the breaking change motivation? The impetus for :lifetime (like, years ago) was the fact that macro_rules can't tell lifetimes from tokens, so now talking about making them indistinguishable from idents, when this is finally implemented and on the cusp of being stabilized, feels like all the way back to square one.

@petrochenkov
Copy link
Contributor

petrochenkov commented May 10, 2018

@durka
After some reflecting, I agree, the motivation for merging them in declarative macros is weak compared to drawbacks.
Even from teaching point of view, I don't think people think of lifetimes and normal identifiers as "same things", so it'd probably mostly result in extra WTFs-per-minute.

making them indistinguishable from idents

(I expected lifetime to be a subset of ident (#50473 (comment)), so they would be distinguishable.)

@durka
Copy link
Contributor Author

durka commented May 10, 2018

subset

Oh I see, maybe I misunderstood. I thought you were proposing to merge them so :lifetime wouldn't be added, and 'foo would match :ident. That'd be a problem because you couldn't have a macro rules that matches lifetimes-but-not-idents.

BTW the idea of '$lt:ident (for matching, as opposed to emitting) was also discussed back when :lifetime was proposed, but it didn't seem to get traction.

@petrochenkov petrochenkov self-assigned this May 10, 2018
@bors
Copy link
Contributor

bors commented May 13, 2018

☔ The latest upstream changes (presumably #49835) made this pull request unmergeable. Please resolve the merge conflicts.

@durka durka force-pushed the stabilize-macro-lifetime branch from 1510bff to e857c1b Compare May 13, 2018 19:52
@durka
Copy link
Contributor Author

durka commented May 14, 2018

@petrochenkov so is this PR still blocked?

@petrochenkov
Copy link
Contributor

I don't think so.
@bors r+

@bors
Copy link
Contributor

bors commented May 14, 2018

📌 Commit e857c1b has been approved by petrochenkov

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-blocked Status: Marked as blocked ❌ on something else such as an RFC or other implementation work. labels May 14, 2018
@bors
Copy link
Contributor

bors commented May 14, 2018

⌛ Testing commit e857c1b with merge cb1ce7d...

bors added a commit that referenced this pull request May 14, 2018
stabilize macro_lifetime_matcher

This stabilizes `:lifetime` which has completed FCP in #34303.
@bors
Copy link
Contributor

bors commented May 14, 2018

☀️ Test successful - status-appveyor, status-travis
Approved by: petrochenkov
Pushing cb1ce7d to master...

@bors bors merged commit e857c1b into rust-lang:master May 14, 2018
@kennytm kennytm added the relnotes Marks issues that should be documented in the release notes of the next release. label May 14, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
relnotes Marks issues that should be documented in the release notes of the next release. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants