123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- macro_rules! should_parse {
- ($name:ident, { $($in:tt)* }) => {
- #[test]
- fn $name() {
- // Make sure we can parse the file!
- syn::parse_file(stringify!($($in)*)).unwrap();
- }
- }
- }
- should_parse!(generic_associated_type, {
- impl Foo {
- type Item = &'a i32;
- fn foo<'a>(&'a self) -> Self::Item<'a> {}
- }
- });
- #[rustfmt::skip]
- should_parse!(const_generics_use, {
- type X = Foo<5>;
- type Y = Foo<"foo">;
- type Z = Foo<X>;
- type W = Foo<{ X + 10 }>;
- });
- should_parse!(trailing_plus_type, {
- type A = Box<Foo>;
- type A = Box<Foo + 'a>;
- type A = Box<'a + Foo>;
- });
- should_parse!(generic_associated_type_where, {
- trait Foo {
- type Item;
- fn foo<T>(&self, t: T) -> Self::Item<T>;
- }
- });
- should_parse!(match_with_block_expr, {
- fn main() {
- match false {
- _ => {}.a(),
- }
- }
- });
|