@@ -198,17 +198,13 @@ pub trait AstBuilder {
198
198
fn lambda_fn_decl ( & self ,
199
199
span : Span ,
200
200
fn_decl : P < ast:: FnDecl > ,
201
- blk : P < ast:: Block > ,
201
+ body : P < ast:: Expr > ,
202
202
fn_decl_span : Span )
203
203
-> P < ast:: Expr > ;
204
204
205
- fn lambda ( & self , span : Span , ids : Vec < ast:: Ident > , blk : P < ast:: Block > ) -> P < ast:: Expr > ;
206
- fn lambda0 ( & self , span : Span , blk : P < ast:: Block > ) -> P < ast:: Expr > ;
207
- fn lambda1 ( & self , span : Span , blk : P < ast:: Block > , ident : ast:: Ident ) -> P < ast:: Expr > ;
208
-
209
- fn lambda_expr ( & self , span : Span , ids : Vec < ast:: Ident > , blk : P < ast:: Expr > ) -> P < ast:: Expr > ;
210
- fn lambda_expr_0 ( & self , span : Span , expr : P < ast:: Expr > ) -> P < ast:: Expr > ;
211
- fn lambda_expr_1 ( & self , span : Span , expr : P < ast:: Expr > , ident : ast:: Ident ) -> P < ast:: Expr > ;
205
+ fn lambda ( & self , span : Span , ids : Vec < ast:: Ident > , body : P < ast:: Expr > ) -> P < ast:: Expr > ;
206
+ fn lambda0 ( & self , span : Span , body : P < ast:: Expr > ) -> P < ast:: Expr > ;
207
+ fn lambda1 ( & self , span : Span , body : P < ast:: Expr > , ident : ast:: Ident ) -> P < ast:: Expr > ;
212
208
213
209
fn lambda_stmts ( & self , span : Span , ids : Vec < ast:: Ident > ,
214
210
blk : Vec < ast:: Stmt > ) -> P < ast:: Expr > ;
@@ -940,19 +936,19 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
940
936
fn lambda_fn_decl ( & self ,
941
937
span : Span ,
942
938
fn_decl : P < ast:: FnDecl > ,
943
- blk : P < ast:: Block > ,
939
+ body : P < ast:: Expr > ,
944
940
fn_decl_span : Span ) // span of the `|...|` part
945
941
-> P < ast:: Expr > {
946
942
self . expr ( span, ast:: ExprKind :: Closure ( ast:: CaptureBy :: Ref ,
947
943
fn_decl,
948
- blk ,
944
+ body ,
949
945
fn_decl_span) )
950
946
}
951
947
952
948
fn lambda ( & self ,
953
949
span : Span ,
954
950
ids : Vec < ast:: Ident > ,
955
- blk : P < ast:: Block > )
951
+ body : P < ast:: Expr > )
956
952
-> P < ast:: Expr > {
957
953
let fn_decl = self . fn_decl (
958
954
ids. iter ( ) . map ( |id| self . arg ( span, * id, self . ty_infer ( span) ) ) . collect ( ) ,
@@ -962,41 +958,30 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
962
958
// part of the lambda, but it probably (maybe?) corresponds to
963
959
// the entire lambda body. Probably we should extend the API
964
960
// here, but that's not entirely clear.
965
- self . expr ( span, ast:: ExprKind :: Closure ( ast:: CaptureBy :: Ref , fn_decl, blk, span) )
966
- }
967
-
968
- fn lambda0 ( & self , span : Span , blk : P < ast:: Block > ) -> P < ast:: Expr > {
969
- self . lambda ( span, Vec :: new ( ) , blk)
961
+ self . expr ( span, ast:: ExprKind :: Closure ( ast:: CaptureBy :: Ref , fn_decl, body, span) )
970
962
}
971
963
972
- fn lambda1 ( & self , span : Span , blk : P < ast:: Block > , ident : ast :: Ident ) -> P < ast:: Expr > {
973
- self . lambda ( span, vec ! [ ident ] , blk )
964
+ fn lambda0 ( & self , span : Span , body : P < ast:: Expr > ) -> P < ast:: Expr > {
965
+ self . lambda ( span, Vec :: new ( ) , body )
974
966
}
975
967
976
- fn lambda_expr ( & self , span : Span , ids : Vec < ast:: Ident > ,
977
- expr : P < ast:: Expr > ) -> P < ast:: Expr > {
978
- self . lambda ( span, ids, self . block_expr ( expr) )
979
- }
980
- fn lambda_expr_0 ( & self , span : Span , expr : P < ast:: Expr > ) -> P < ast:: Expr > {
981
- self . lambda0 ( span, self . block_expr ( expr) )
982
- }
983
- fn lambda_expr_1 ( & self , span : Span , expr : P < ast:: Expr > , ident : ast:: Ident ) -> P < ast:: Expr > {
984
- self . lambda1 ( span, self . block_expr ( expr) , ident)
968
+ fn lambda1 ( & self , span : Span , body : P < ast:: Expr > , ident : ast:: Ident ) -> P < ast:: Expr > {
969
+ self . lambda ( span, vec ! [ ident] , body)
985
970
}
986
971
987
972
fn lambda_stmts ( & self ,
988
973
span : Span ,
989
974
ids : Vec < ast:: Ident > ,
990
975
stmts : Vec < ast:: Stmt > )
991
976
-> P < ast:: Expr > {
992
- self . lambda ( span, ids, self . block ( span, stmts) )
977
+ self . lambda ( span, ids, self . expr_block ( self . block ( span, stmts) ) )
993
978
}
994
979
fn lambda_stmts_0 ( & self , span : Span , stmts : Vec < ast:: Stmt > ) -> P < ast:: Expr > {
995
- self . lambda0 ( span, self . block ( span, stmts) )
980
+ self . lambda0 ( span, self . expr_block ( self . block ( span, stmts) ) )
996
981
}
997
982
fn lambda_stmts_1 ( & self , span : Span , stmts : Vec < ast:: Stmt > ,
998
983
ident : ast:: Ident ) -> P < ast:: Expr > {
999
- self . lambda1 ( span, self . block ( span, stmts) , ident)
984
+ self . lambda1 ( span, self . expr_block ( self . block ( span, stmts) ) , ident)
1000
985
}
1001
986
1002
987
fn arg ( & self , span : Span , ident : ast:: Ident , ty : P < ast:: Ty > ) -> ast:: Arg {
0 commit comments