error[E0658]: The attribute `lt_struct` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:16:13
   |
LL | struct StLt<#[lt_struct] 'a>(&'a u32);
   |             ^^^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `ty_struct` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:18:13
   |
LL | struct StTy<#[ty_struct] I>(I);
   |             ^^^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `lt_enum` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:21:11
   |
LL | enum EnLt<#[lt_enum] 'b> { A(&'b u32), B }
   |           ^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `ty_enum` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:23:11
   |
LL | enum EnTy<#[ty_enum] J> { A(J), B }
   |           ^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `lt_trait` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:26:12
   |
LL | trait TrLt<#[lt_trait] 'c> { fn foo(&self, _: &'c [u32]) -> &'c u32; }
   |            ^^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `ty_trait` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:28:12
   |
LL | trait TrTy<#[ty_trait] K> { fn foo(&self, _: K); }
   |            ^^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `lt_type` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:31:11
   |
LL | type TyLt<#[lt_type] 'd> = &'d u32;
   |           ^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `ty_type` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:33:11
   |
LL | type TyTy<#[ty_type] L> = (L, );
   |           ^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `lt_inherent` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:36:6
   |
LL | impl<#[lt_inherent] 'e> StLt<'e> { }
   |      ^^^^^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `ty_inherent` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:38:6
   |
LL | impl<#[ty_inherent] M> StTy<M> { }
   |      ^^^^^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `lt_impl_for` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:41:6
   |
LL | impl<#[lt_impl_for] 'f> TrLt<'f> for StLt<'f> {
   |      ^^^^^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `ty_impl_for` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:45:6
   |
LL | impl<#[ty_impl_for] N> TrTy<N> for StTy<N> {
   |      ^^^^^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `lt_fn` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:50:9
   |
LL | fn f_lt<#[lt_fn] 'g>(_: &'g [u32]) -> &'g u32 { loop { } }
   |         ^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `ty_fn` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:52:9
   |
LL | fn f_ty<#[ty_fn] O>(_: O) { }
   |         ^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `lt_meth` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:56:13
   |
LL |     fn m_lt<#[lt_meth] 'h>(_: &'h [u32]) -> &'h u32 { loop { } }
   |             ^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `ty_meth` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:58:13
   |
LL |     fn m_ty<#[ty_meth] P>(_: P) { }
   |             ^^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error[E0658]: The attribute `lt_hof` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
  --> $DIR/feature-gate-custom_attribute2.rs:63:19
   |
LL |     where Q: for <#[lt_hof] 'i> Fn(&'i [u32]) -> &'i u32
   |                   ^^^^^^^^^
   |
   = help: add #![feature(custom_attribute)] to the crate attributes to enable

error: aborting due to 17 previous errors

For more information about this error, try `rustc --explain E0658`.
