@@ -48,6 +48,23 @@ impl<'a> ExtCtxt<'a> {
4848 ast:: Path { span, segments, tokens : None }
4949 }
5050
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+
5168 pub fn ty_mt ( & self , ty : P < ast:: Ty > , mutbl : ast:: Mutability ) -> ast:: MutTy {
5269 ast:: MutTy { ty, mutbl }
5370 }
@@ -265,6 +282,10 @@ impl<'a> ExtCtxt<'a> {
265282 self . expr ( span, ast:: ExprKind :: Field ( expr, field) )
266283 }
267284
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+
268289 pub fn expr_binary (
269290 & self ,
270291 sp : Span ,
@@ -410,18 +431,6 @@ impl<'a> ExtCtxt<'a> {
410431 self . expr ( sp, ast:: ExprKind :: Tup ( exprs) )
411432 }
412433
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-
425434 pub fn expr_ok ( & self , sp : Span , expr : P < ast:: Expr > ) -> P < ast:: Expr > {
426435 let ok = self . std_path ( & [ sym:: result, sym:: Result , sym:: Ok ] ) ;
427436 self . expr_call_global ( sp, ok, thin_vec ! [ expr] )
@@ -519,10 +528,6 @@ impl<'a> ExtCtxt<'a> {
519528 }
520529 }
521530
522- pub fn arm_unreachable ( & self , span : Span ) -> ast:: Arm {
523- self . arm ( span, self . pat_wild ( span) , self . expr_unreachable ( span) )
524- }
525-
526531 pub fn expr_match ( & self , span : Span , arg : P < ast:: Expr > , arms : ThinVec < ast:: Arm > ) -> P < Expr > {
527532 self . expr ( span, ast:: ExprKind :: Match ( arg, arms, MatchKind :: Prefix ) )
528533 }
0 commit comments