@@ -4,6 +4,7 @@ import std::uint;
4
4
import std:: int;
5
5
import std:: vec;
6
6
import std:: option:: none;
7
+ import std:: option:: some;
7
8
import front:: ast;
8
9
import front:: ast:: ty;
9
10
import front:: ast:: pat;
@@ -16,6 +17,7 @@ import std::io::stdout;
16
17
import std:: io:: str_writer;
17
18
import std:: io:: string_writer;
18
19
import pretty:: pprust:: print_block;
20
+ import pretty:: pprust:: print_item;
19
21
import pretty:: pprust:: print_expr;
20
22
import pretty:: pprust:: print_decl;
21
23
import pretty:: pprust:: print_fn;
@@ -171,6 +173,17 @@ fn block_to_str(&ast::block b) -> str {
171
173
ret s. get_str ( ) ;
172
174
}
173
175
176
+ fn item_to_str ( & @ast:: item i) -> str {
177
+ let str_writer s = string_writer ( ) ;
178
+ auto out_ = mkstate ( s. get_writer ( ) , 80 u) ;
179
+ auto out = @rec ( s=out_,
180
+ comments=none[ vec[ front:: lexer:: cmnt] ] ,
181
+ mutable cur_cmnt=0 u) ;
182
+
183
+ print_item ( out, i) ;
184
+ ret s. get_str ( ) ;
185
+ }
186
+
174
187
fn log_block ( & ast:: block b) -> ( ) {
175
188
log ( block_to_str ( b) ) ;
176
189
}
@@ -179,6 +192,21 @@ fn log_block_err(&ast::block b) -> () {
179
192
log_err ( block_to_str ( b) ) ;
180
193
}
181
194
195
+ fn log_item_err ( & @ast:: item i) -> ( ) {
196
+ log_err ( item_to_str ( i) ) ;
197
+ }
198
+
199
+ fn log_ann ( & ast:: ann a) -> ( ) {
200
+ alt ( a) {
201
+ case ( ast:: ann_none ( _) ) {
202
+ log ( "ann_none" ) ;
203
+ }
204
+ case ( ast:: ann_type ( _, _, _, _) ) {
205
+ log ( "ann_type" ) ;
206
+ }
207
+ }
208
+ }
209
+
182
210
fn fun_to_str ( & ast:: _fn f, str name , vec[ ast:: ty_param ] params ) -> str {
183
211
let str_writer s = string_writer ( ) ;
184
212
auto out_ = mkstate ( s. get_writer ( ) , 80 u) ;
@@ -286,6 +314,13 @@ fn has_nonlocal_exits(&ast::block b) -> bool {
286
314
ret ( has_exits. size ( ) > 0 u) ;
287
315
}
288
316
317
+ fn local_rhs_span ( & @ast:: local l, & ast:: span def) -> ast:: span {
318
+ alt ( l. init ) {
319
+ case ( some[ ast:: initializer] ( ?i) ) { ret i. expr . span ; }
320
+ case ( _) { ret def; }
321
+ }
322
+ }
323
+
289
324
//
290
325
// Local Variables:
291
326
// mode: rust
0 commit comments