]>
Commit | Line | Data |
---|---|---|
416331ca XL |
1 | use super::*; |
2 | ||
74b04a01 XL |
3 | use rustc_ast::ast; |
4 | use rustc_ast::with_default_globals; | |
dfeec247 | 5 | use rustc_span; |
74b04a01 | 6 | use rustc_span::source_map::respan; |
f9f354fc | 7 | use rustc_span::symbol::Ident; |
416331ca XL |
8 | |
9 | fn fun_to_string( | |
dfeec247 XL |
10 | decl: &ast::FnDecl, |
11 | header: ast::FnHeader, | |
f9f354fc | 12 | name: Ident, |
dfeec247 | 13 | generics: &ast::Generics, |
416331ca XL |
14 | ) -> String { |
15 | to_string(|s| { | |
16 | s.head(""); | |
74b04a01 | 17 | s.print_fn(decl, header, Some(name), generics); |
e1599b0c XL |
18 | s.end(); // Close the head box. |
19 | s.end(); // Close the outer box. | |
416331ca XL |
20 | }) |
21 | } | |
22 | ||
23 | fn variant_to_string(var: &ast::Variant) -> String { | |
24 | to_string(|s| s.print_variant(var)) | |
25 | } | |
26 | ||
27 | #[test] | |
28 | fn test_fun_to_string() { | |
29 | with_default_globals(|| { | |
f9f354fc | 30 | let abba_ident = Ident::from_str("abba"); |
416331ca | 31 | |
74b04a01 XL |
32 | let decl = |
33 | ast::FnDecl { inputs: Vec::new(), output: ast::FnRetTy::Default(rustc_span::DUMMY_SP) }; | |
416331ca XL |
34 | let generics = ast::Generics::default(); |
35 | assert_eq!( | |
dfeec247 | 36 | fun_to_string(&decl, ast::FnHeader::default(), abba_ident, &generics), |
416331ca XL |
37 | "fn abba()" |
38 | ); | |
39 | }) | |
40 | } | |
41 | ||
42 | #[test] | |
43 | fn test_variant_to_string() { | |
44 | with_default_globals(|| { | |
f9f354fc | 45 | let ident = Ident::from_str("principal_skinner"); |
416331ca | 46 | |
e1599b0c | 47 | let var = ast::Variant { |
416331ca | 48 | ident, |
dfeec247 | 49 | vis: respan(rustc_span::DUMMY_SP, ast::VisibilityKind::Inherited), |
416331ca XL |
50 | attrs: Vec::new(), |
51 | id: ast::DUMMY_NODE_ID, | |
416331ca XL |
52 | data: ast::VariantData::Unit(ast::DUMMY_NODE_ID), |
53 | disr_expr: None, | |
dfeec247 | 54 | span: rustc_span::DUMMY_SP, |
e1599b0c XL |
55 | is_placeholder: false, |
56 | }; | |
416331ca XL |
57 | |
58 | let varstr = variant_to_string(&var); | |
59 | assert_eq!(varstr, "principal_skinner"); | |
60 | }) | |
61 | } |