//! Tests checking that types implement Tagged. use supply::lt_list::{Lt1, LtList}; use supply::tag::{Tagged, WithLt}; #[allow(unused)] fn assert_tagged() where T::Tag: WithLt, { } // Primitives const _: () = { fn with_none() { // assert_tagged::(); // // assert_tagged::(); // // assert_tagged::(); // assert_tagged::(); // // assert_tagged::(); // assert_tagged::(); // assert_tagged::(); // assert_tagged::(); // assert_tagged::(); // assert_tagged::(); // // assert_tagged::(); // // assert_tagged::(); // assert_tagged::(); // assert_tagged::(); // assert_tagged::(); // assert_tagged::(); // assert_tagged::(); } fn with_t<'a, T: Tagged + 'a, L: LtList>>() where T::Tag: WithLt, { // assert_tagged::<*const T, L>(); // assert_tagged::<*mut T, L>(); // // assert_tagged::<&'a T, L>(); // assert_tagged::<&'a mut T, L>(); // // assert_tagged::<[T], L>(); } fn with_n() where T::Tag: WithLt, { // assert_tagged::<[T; N], L>(); } fn with_t6<'a, T0, T1, T2, T3, T4, T5, L: LtList>>() where T0: Tagged + 'a, T0::Tag: WithLt, T1: Tagged + 'a, T1::Tag: WithLt, T2: Tagged + 'a, T2::Tag: WithLt, T3: Tagged + 'a, T3::Tag: WithLt, T4: Tagged + 'a, T4::Tag: WithLt, T5: Tagged + 'a, T5::Tag: WithLt, { // assert_tagged::<(), L>(); // assert_tagged::<(T0,), L>(); // assert_tagged::<(T0, T1), L>(); // assert_tagged::<(T0, T1, T2), L>(); // assert_tagged::<(T0, T1, T2, T3), L>(); // assert_tagged::<(T0, T1, T2, T3, T4), L>(); // assert_tagged::<(T0, T1, T2, T3, T4, T5), L>(); } };