]> git.proxmox.com Git - rustc.git/blame - src/libsyntax/print/pprust/tests.rs
New upstream version 1.38.0+dfsg1
[rustc.git] / src / libsyntax / print / pprust / tests.rs
CommitLineData
416331ca
XL
1use super::*;
2
3use crate::ast;
4use crate::source_map;
5use crate::with_default_globals;
6use syntax_pos;
7
8fn fun_to_string(
9 decl: &ast::FnDecl, header: ast::FnHeader, name: ast::Ident, generics: &ast::Generics
10) -> String {
11 to_string(|s| {
12 s.head("");
13 s.print_fn(decl, header, Some(name),
14 generics, &source_map::dummy_spanned(ast::VisibilityKind::Inherited));
15 s.end(); // Close the head box
16 s.end(); // Close the outer box
17 })
18}
19
20fn variant_to_string(var: &ast::Variant) -> String {
21 to_string(|s| s.print_variant(var))
22}
23
24#[test]
25fn test_fun_to_string() {
26 with_default_globals(|| {
27 let abba_ident = ast::Ident::from_str("abba");
28
29 let decl = ast::FnDecl {
30 inputs: Vec::new(),
31 output: ast::FunctionRetTy::Default(syntax_pos::DUMMY_SP),
32 c_variadic: false
33 };
34 let generics = ast::Generics::default();
35 assert_eq!(
36 fun_to_string(
37 &decl,
38 ast::FnHeader {
39 unsafety: ast::Unsafety::Normal,
40 constness: source_map::dummy_spanned(ast::Constness::NotConst),
41 asyncness: source_map::dummy_spanned(ast::IsAsync::NotAsync),
42 abi: Abi::Rust,
43 },
44 abba_ident,
45 &generics
46 ),
47 "fn abba()"
48 );
49 })
50}
51
52#[test]
53fn test_variant_to_string() {
54 with_default_globals(|| {
55 let ident = ast::Ident::from_str("principal_skinner");
56
57 let var = source_map::respan(syntax_pos::DUMMY_SP, ast::Variant_ {
58 ident,
59 attrs: Vec::new(),
60 id: ast::DUMMY_NODE_ID,
61 // making this up as I go.... ?
62 data: ast::VariantData::Unit(ast::DUMMY_NODE_ID),
63 disr_expr: None,
64 });
65
66 let varstr = variant_to_string(&var);
67 assert_eq!(varstr, "principal_skinner");
68 })
69}