@@ -730,10 +730,11 @@ mod test {
730
730
use attr:: AttrMetaMethods ;
731
731
use parse:: parser:: Parser ;
732
732
use parse:: token:: { str_to_ident} ;
733
+ use print:: pprust:: view_item_to_string;
733
734
use ptr:: P ;
734
735
use util:: parser_testing:: { string_to_tts, string_to_parser} ;
735
736
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 } ;
737
738
738
739
// produce a codemap::span
739
740
fn sp ( a : u32 , b : u32 ) -> Span {
@@ -1083,6 +1084,30 @@ mod test {
1083
1084
span: sp( 0 , 21 ) } ) ) ) ;
1084
1085
}
1085
1086
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
+
1086
1111
fn get_spans_of_pat_idents ( src : & str ) -> Vec < Span > {
1087
1112
let item = string_to_item ( src. to_string ( ) ) . unwrap ( ) ;
1088
1113
0 commit comments