@@ -149,7 +149,8 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
149
149
150
150
// Produces an AST expression that represents a RT::conv record,
151
151
// which tells the RT::conv* functions how to perform the conversion
152
- fn make_rt_conv_expr( parser p, common:: span sp, & conv cnv) -> @ast:: expr {
152
+ fn make_rt_conv_expr( & ext_ctxt cx,
153
+ parser p, common:: span sp, & conv cnv) -> @ast:: expr {
153
154
154
155
fn make_flags( parser p, common:: span sp, vec[ flag] flags)
155
156
-> @ast:: expr {
@@ -186,7 +187,8 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
186
187
ret make_vec_expr( p, sp, flagexprs) ;
187
188
}
188
189
189
- fn make_count( parser p, common:: span sp, & count cnt) -> @ast:: expr {
190
+ fn make_count( & ext_ctxt cx,
191
+ parser p, common:: span sp, & count cnt) -> @ast:: expr {
190
192
alt ( cnt) {
191
193
case ( count_implied) {
192
194
ret make_rt_path_expr( p, sp, "count_implied" ) ;
@@ -198,8 +200,7 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
198
200
ret make_call( p, sp, count_is_path, count_is_args) ;
199
201
}
200
202
case ( _) {
201
- log_err "not implemented" ;
202
- fail;
203
+ cx. span_unimpl( sp, "unimplemented #fmt conversion" ) ;
203
204
}
204
205
}
205
206
}
@@ -244,8 +245,8 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
244
245
}
245
246
246
247
auto rt_conv_flags = make_flags( p, sp, cnv. flags) ;
247
- auto rt_conv_width = make_count( p, sp, cnv. width) ;
248
- auto rt_conv_precision = make_count( p, sp, cnv. precision) ;
248
+ auto rt_conv_width = make_count( cx , p, sp, cnv. width) ;
249
+ auto rt_conv_precision = make_count( cx , p, sp, cnv. precision) ;
249
250
auto rt_conv_ty = make_ty( p, sp, cnv. ty) ;
250
251
ret make_conv_rec( p,
251
252
sp,
@@ -255,11 +256,11 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
255
256
rt_conv_ty) ;
256
257
}
257
258
258
- fn make_conv_call( parser p, common:: span sp, str conv_type,
259
+ fn make_conv_call( & ext_ctxt cx , parser p, common:: span sp, str conv_type,
259
260
& conv cnv, @ast:: expr arg) -> @ast:: expr {
260
261
auto fname = "conv_" + conv_type;
261
262
auto path = make_path_vec( fname) ;
262
- auto cnv_expr = make_rt_conv_expr( p, sp, cnv) ;
263
+ auto cnv_expr = make_rt_conv_expr( cx , p, sp, cnv) ;
263
264
auto args = [ cnv_expr, arg] ;
264
265
ret make_call( p, arg. span, path, args) ;
265
266
}
@@ -292,8 +293,7 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
292
293
case ( option:: none) {
293
294
}
294
295
case ( _) {
295
- log_err unsupported;
296
- fail;
296
+ cx. span_unimpl( sp, unsupported) ;
297
297
}
298
298
}
299
299
@@ -316,8 +316,7 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
316
316
case ( flag_left_zero_pad) {
317
317
}
318
318
case ( _) {
319
- log_err unsupported;
320
- fail;
319
+ cx. span_unimpl( sp, unsupported) ;
321
320
}
322
321
}
323
322
}
@@ -328,8 +327,7 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
328
327
case ( count_is( _) ) {
329
328
}
330
329
case ( _) {
331
- log_err unsupported;
332
- fail;
330
+ cx. span_unimpl( sp, unsupported) ;
333
331
}
334
332
}
335
333
@@ -339,43 +337,41 @@ fn pieces_to_expr(&ext_ctxt cx, parser p, common::span sp,
339
337
case ( count_is( _) ) {
340
338
}
341
339
case ( _) {
342
- log_err unsupported;
343
- fail;
340
+ cx. span_unimpl( sp, unsupported) ;
344
341
}
345
342
}
346
343
347
344
alt ( cnv. ty) {
348
345
case ( ty_str) {
349
- ret make_conv_call( p, arg. span, "str" , cnv, arg) ;
346
+ ret make_conv_call( cx , p, arg. span, "str" , cnv, arg) ;
350
347
}
351
348
case ( ty_int( ?sign) ) {
352
349
alt ( sign) {
353
350
case ( signed) {
354
- ret make_conv_call( p, arg. span, "int" , cnv, arg) ;
351
+ ret make_conv_call( cx , p, arg. span, "int" , cnv, arg) ;
355
352
}
356
353
case ( unsigned) {
357
- ret make_conv_call( p, arg. span, "uint" , cnv, arg) ;
354
+ ret make_conv_call( cx , p, arg. span, "uint" , cnv, arg) ;
358
355
}
359
356
}
360
357
}
361
358
case ( ty_bool) {
362
- ret make_conv_call( p, arg. span, "bool" , cnv, arg) ;
359
+ ret make_conv_call( cx , p, arg. span, "bool" , cnv, arg) ;
363
360
}
364
361
case ( ty_char) {
365
- ret make_conv_call( p, arg. span, "char" , cnv, arg) ;
362
+ ret make_conv_call( cx , p, arg. span, "char" , cnv, arg) ;
366
363
}
367
364
case ( ty_hex( _) ) {
368
- ret make_conv_call( p, arg. span, "uint" , cnv, arg) ;
365
+ ret make_conv_call( cx , p, arg. span, "uint" , cnv, arg) ;
369
366
}
370
367
case ( ty_bits) {
371
- ret make_conv_call( p, arg. span, "uint" , cnv, arg) ;
368
+ ret make_conv_call( cx , p, arg. span, "uint" , cnv, arg) ;
372
369
}
373
370
case ( ty_octal) {
374
- ret make_conv_call( p, arg. span, "uint" , cnv, arg) ;
371
+ ret make_conv_call( cx , p, arg. span, "uint" , cnv, arg) ;
375
372
}
376
373
case ( _) {
377
- log_err unsupported;
378
- fail;
374
+ cx. span_unimpl( sp, unsupported) ;
379
375
}
380
376
}
381
377
}
0 commit comments