error[E0658]: the attribute `lt_struct` is currently unknown to the compiler and may have meaning added to it in the future
  --> $DIR/feature-gate-custom_attribute2.rs:6:13
   |
LL | struct StLt<#[lt_struct] 'a>(&'a u32);
   |             ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:8:13
   |
LL | struct StTy<#[ty_struct] I>(I);
   |             ^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:11:11
   |
LL | enum EnLt<#[lt_enum] 'b> { A(&'b u32), B }
   |           ^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:13:11
   |
LL | enum EnTy<#[ty_enum] J> { A(J), B }
   |           ^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:16:12
   |
LL | trait TrLt<#[lt_trait] 'c> { fn foo(&self, _: &'c [u32]) -> &'c u32; }
   |            ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:18:12
   |
LL | trait TrTy<#[ty_trait] K> { fn foo(&self, _: K); }
   |            ^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:21:11
   |
LL | type TyLt<#[lt_type] 'd> = &'d u32;
   |           ^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:23:11
   |
LL | type TyTy<#[ty_type] L> = (L, );
   |           ^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:26:6
   |
LL | impl<#[lt_inherent] 'e> StLt<'e> { }
   |      ^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:28:6
   |
LL | impl<#[ty_inherent] M> StTy<M> { }
   |      ^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:31:6
   |
LL | impl<#[lt_impl_for] 'f> TrLt<'f> for StLt<'f> {
   |      ^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:35:6
   |
LL | impl<#[ty_impl_for] N> TrTy<N> for StTy<N> {
   |      ^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:40:9
   |
LL | fn f_lt<#[lt_fn] 'g>(_: &'g [u32]) -> &'g u32 { loop { } }
   |         ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:42:9
   |
LL | fn f_ty<#[ty_fn] O>(_: O) { }
   |         ^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:46:13
   |
LL |     fn m_lt<#[lt_meth] 'h>(_: &'h [u32]) -> &'h u32 { loop { } }
   |             ^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:48:13
   |
LL |     fn m_ty<#[ty_meth] P>(_: P) { }
   |             ^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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
  --> $DIR/feature-gate-custom_attribute2.rs:53:19
   |
LL |     where Q: for <#[lt_hof] 'i> Fn(&'i [u32]) -> &'i u32
   |                   ^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/29642
   = 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`.
