@@ -730,10 +730,11 @@ mod test {
730730 use attr:: AttrMetaMethods ;
731731 use parse:: parser:: Parser ;
732732 use parse:: token:: { str_to_ident} ;
733+ use print:: pprust:: view_item_to_string;
733734 use ptr:: P ;
734735 use util:: parser_testing:: { string_to_tts, string_to_parser} ;
735736 use util:: parser_testing:: { string_to_expr, string_to_item} ;
736- use util:: parser_testing:: string_to_stmt;
737+ use util:: parser_testing:: { string_to_stmt, string_to_view_item } ;
737738
738739 // produce a codemap::span
739740 fn sp ( a : u32 , b : u32 ) -> Span {
@@ -1083,6 +1084,30 @@ mod test {
10831084 span: sp( 0 , 21 ) } ) ) ) ;
10841085 }
10851086
1087+ #[ test] fn parse_use ( ) {
1088+ let use_s = "use foo::bar::baz;" ;
1089+ let vitem = string_to_view_item ( use_s. to_string ( ) ) ;
1090+ let vitem_s = view_item_to_string ( & vitem) ;
1091+ assert_eq ! ( vitem_s. as_slice( ) , use_s) ;
1092+
1093+ let use_s = "use foo::bar as baz;" ;
1094+ let vitem = string_to_view_item ( use_s. to_string ( ) ) ;
1095+ let vitem_s = view_item_to_string ( & vitem) ;
1096+ assert_eq ! ( vitem_s. as_slice( ) , use_s) ;
1097+ }
1098+
1099+ #[ test] fn parse_extern_crate ( ) {
1100+ let ex_s = "extern crate foo;" ;
1101+ let vitem = string_to_view_item ( ex_s. to_string ( ) ) ;
1102+ let vitem_s = view_item_to_string ( & vitem) ;
1103+ assert_eq ! ( vitem_s. as_slice( ) , ex_s) ;
1104+
1105+ let ex_s = "extern crate \" foo\" as bar;" ;
1106+ let vitem = string_to_view_item ( ex_s. to_string ( ) ) ;
1107+ let vitem_s = view_item_to_string ( & vitem) ;
1108+ assert_eq ! ( vitem_s. as_slice( ) , ex_s) ;
1109+ }
1110+
10861111 fn get_spans_of_pat_idents ( src : & str ) -> Vec < Span > {
10871112 let item = string_to_item ( src. to_string ( ) ) . unwrap ( ) ;
10881113
0 commit comments