@@ -48,6 +48,23 @@ impl<'a> ExtCtxt<'a> {
48
48
ast:: Path { span, segments, tokens : None }
49
49
}
50
50
51
+ pub fn macro_call (
52
+ & self ,
53
+ span : Span ,
54
+ path : ast:: Path ,
55
+ delim : ast:: token:: Delimiter ,
56
+ tokens : ast:: tokenstream:: TokenStream ,
57
+ ) -> P < ast:: MacCall > {
58
+ P ( ast:: MacCall {
59
+ path,
60
+ args : P ( ast:: DelimArgs {
61
+ dspan : ast:: tokenstream:: DelimSpan { open : span, close : span } ,
62
+ delim,
63
+ tokens,
64
+ } ) ,
65
+ } )
66
+ }
67
+
51
68
pub fn ty_mt ( & self , ty : P < ast:: Ty > , mutbl : ast:: Mutability ) -> ast:: MutTy {
52
69
ast:: MutTy { ty, mutbl }
53
70
}
@@ -265,6 +282,10 @@ impl<'a> ExtCtxt<'a> {
265
282
self . expr ( span, ast:: ExprKind :: Field ( expr, field) )
266
283
}
267
284
285
+ pub fn expr_macro_call ( & self , span : Span , call : P < ast:: MacCall > ) -> P < ast:: Expr > {
286
+ self . expr ( span, ast:: ExprKind :: MacCall ( call) )
287
+ }
288
+
268
289
pub fn expr_binary (
269
290
& self ,
270
291
sp : Span ,
@@ -410,18 +431,6 @@ impl<'a> ExtCtxt<'a> {
410
431
self . expr ( sp, ast:: ExprKind :: Tup ( exprs) )
411
432
}
412
433
413
- pub fn expr_fail ( & self , span : Span , msg : Symbol ) -> P < ast:: Expr > {
414
- self . expr_call_global (
415
- span,
416
- [ sym:: std, sym:: rt, sym:: begin_panic] . iter ( ) . map ( |s| Ident :: new ( * s, span) ) . collect ( ) ,
417
- thin_vec ! [ self . expr_str( span, msg) ] ,
418
- )
419
- }
420
-
421
- pub fn expr_unreachable ( & self , span : Span ) -> P < ast:: Expr > {
422
- self . expr_fail ( span, Symbol :: intern ( "internal error: entered unreachable code" ) )
423
- }
424
-
425
434
pub fn expr_ok ( & self , sp : Span , expr : P < ast:: Expr > ) -> P < ast:: Expr > {
426
435
let ok = self . std_path ( & [ sym:: result, sym:: Result , sym:: Ok ] ) ;
427
436
self . expr_call_global ( sp, ok, thin_vec ! [ expr] )
@@ -519,10 +528,6 @@ impl<'a> ExtCtxt<'a> {
519
528
}
520
529
}
521
530
522
- pub fn arm_unreachable ( & self , span : Span ) -> ast:: Arm {
523
- self . arm ( span, self . pat_wild ( span) , self . expr_unreachable ( span) )
524
- }
525
-
526
531
pub fn expr_match ( & self , span : Span , arg : P < ast:: Expr > , arms : ThinVec < ast:: Arm > ) -> P < Expr > {
527
532
self . expr ( span, ast:: ExprKind :: Match ( arg, arms, MatchKind :: Prefix ) )
528
533
}
0 commit comments