diff options
Diffstat (limited to 'syn/tests/test_expr.rs')
-rw-r--r-- | syn/tests/test_expr.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/syn/tests/test_expr.rs b/syn/tests/test_expr.rs new file mode 100644 index 0000000..0edf6ce --- /dev/null +++ b/syn/tests/test_expr.rs @@ -0,0 +1,37 @@ +#[macro_use] +mod macros; + +use std::str::FromStr; + +use proc_macro2::TokenStream; +use syn::{Expr, ExprRange}; + +#[test] +fn test_expr_parse() { + let code = "..100u32"; + let tt = TokenStream::from_str(code).unwrap(); + let expr: Expr = syn::parse2(tt.clone()).unwrap(); + let expr_range: ExprRange = syn::parse2(tt).unwrap(); + assert_eq!(expr, Expr::Range(expr_range)); +} + +#[test] +fn test_await() { + // Must not parse as Expr::Field. + let expr = syn::parse_str::<Expr>("fut.await").unwrap(); + + snapshot!(expr, @r###" + Expr::Await { + base: Expr::Path { + path: Path { + segments: [ + PathSegment { + ident: "fut", + arguments: None, + }, + ], + }, + }, + } + "###); +} |