extern crate proc_macro2;
extern crate syn;

#[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,
   ⋮                },
   ⋮            ],
   ⋮        },
   ⋮    },
   ⋮}
    "###);
}

extern crate proc_macro2;
extern crate syn;

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));
}

--- 
+++ 
@@ -1,5 +1,8 @@
 extern crate proc_macro2;
 extern crate syn;
+
+#[macro_use]
+mod macros;
 
 use std::str::FromStr;
 
@@ -14,3 +17,24 @@
     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,
+   ⋮                },
+   ⋮            ],
+   ⋮        },
+   ⋮    },
+   ⋮}
+    "###);
+}
Add snapshot test for parsing await expr
