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