]> git.proxmox.com Git - rustc.git/blame - vendor/syn/tests/test_stmt.rs
New upstream version 1.58.1+dfsg1
[rustc.git] / vendor / syn / tests / test_stmt.rs
CommitLineData
3c0e092e
XL
1#![allow(clippy::non_ascii_literal)]
2
f035d41b
XL
3#[macro_use]
4mod macros;
5
5869c6ff
XL
6use proc_macro2::{Delimiter, Group, Ident, Span, TokenStream, TokenTree};
7use std::iter::FromIterator;
f035d41b
XL
8use syn::Stmt;
9
10#[test]
11fn test_raw_operator() {
12 let stmt = syn::parse_str::<Stmt>("let _ = &raw const x;").unwrap();
13
14 snapshot!(stmt, @r###"
15 Local(Local {
16 pat: Pat::Wild,
17 init: Some(Verbatim(`& raw const x`)),
18 })
19 "###);
20}
21
22#[test]
23fn test_raw_variable() {
24 let stmt = syn::parse_str::<Stmt>("let _ = &raw;").unwrap();
25
26 snapshot!(stmt, @r###"
27 Local(Local {
28 pat: Pat::Wild,
29 init: Some(Expr::Reference {
30 expr: Expr::Path {
31 path: Path {
32 segments: [
33 PathSegment {
34 ident: "raw",
35 arguments: None,
36 },
37 ],
38 },
39 },
40 }),
41 })
42 "###);
43}
44
45#[test]
46fn test_raw_invalid() {
47 assert!(syn::parse_str::<Stmt>("let _ = &raw x;").is_err());
48}
5869c6ff
XL
49
50#[test]
51fn test_none_group() {
52 // <Ø async fn f() {} Ø>
53 let tokens = TokenStream::from_iter(vec![TokenTree::Group(Group::new(
54 Delimiter::None,
55 TokenStream::from_iter(vec![
56 TokenTree::Ident(Ident::new("async", Span::call_site())),
57 TokenTree::Ident(Ident::new("fn", Span::call_site())),
58 TokenTree::Ident(Ident::new("f", Span::call_site())),
59 TokenTree::Group(Group::new(Delimiter::Parenthesis, TokenStream::new())),
60 TokenTree::Group(Group::new(Delimiter::Brace, TokenStream::new())),
61 ]),
62 ))]);
63
64 snapshot!(tokens as Stmt, @r###"
65 Item(Item::Fn {
66 vis: Inherited,
67 sig: Signature {
68 asyncness: Some,
69 ident: "f",
70 generics: Generics,
71 output: Default,
72 },
73 block: Block,
74 })
75 "###);
76}