@@ -192,6 +192,10 @@ impl<'a> LoweringContext<'a> {
192192 }
193193 }
194194
195+ fn lower_opt_sp_ident ( & mut self , o_id : Option < Spanned < Ident > > ) -> Option < Spanned < Name > > {
196+ o_id. map ( |sp_ident| respan ( sp_ident. span , self . lower_ident ( sp_ident. node ) ) )
197+ }
198+
195199 fn lower_attrs ( & mut self , attrs : & Vec < Attribute > ) -> hir:: HirVec < Attribute > {
196200 attrs. clone ( ) . into ( )
197201 }
@@ -1122,11 +1126,10 @@ impl<'a> LoweringContext<'a> {
11221126 }
11231127 ExprKind :: While ( ref cond, ref body, opt_ident) => {
11241128 hir:: ExprWhile ( self . lower_expr ( cond) , self . lower_block ( body) ,
1125- opt_ident . map ( |ident| self . lower_ident ( ident ) ) )
1129+ self . lower_opt_sp_ident ( opt_ident ) )
11261130 }
11271131 ExprKind :: Loop ( ref body, opt_ident) => {
1128- hir:: ExprLoop ( self . lower_block ( body) ,
1129- opt_ident. map ( |ident| self . lower_ident ( ident) ) )
1132+ hir:: ExprLoop ( self . lower_block ( body) , self . lower_opt_sp_ident ( opt_ident) )
11301133 }
11311134 ExprKind :: Match ( ref expr, ref arms) => {
11321135 hir:: ExprMatch ( self . lower_expr ( expr) ,
@@ -1243,12 +1246,8 @@ impl<'a> LoweringContext<'a> {
12431246 } ;
12441247 hir:: ExprPath ( hir_qself, self . lower_path_full ( path, rename) )
12451248 }
1246- ExprKind :: Break ( opt_ident) => hir:: ExprBreak ( opt_ident. map ( |sp_ident| {
1247- respan ( sp_ident. span , self . lower_ident ( sp_ident. node ) )
1248- } ) ) ,
1249- ExprKind :: Again ( opt_ident) => hir:: ExprAgain ( opt_ident. map ( |sp_ident| {
1250- respan ( sp_ident. span , self . lower_ident ( sp_ident. node ) )
1251- } ) ) ,
1249+ ExprKind :: Break ( opt_ident) => hir:: ExprBreak ( self . lower_opt_sp_ident ( opt_ident) ) ,
1250+ ExprKind :: Again ( opt_ident) => hir:: ExprAgain ( self . lower_opt_sp_ident ( opt_ident) ) ,
12521251 ExprKind :: Ret ( ref e) => hir:: ExprRet ( e. as_ref ( ) . map ( |x| self . lower_expr ( x) ) ) ,
12531252 ExprKind :: InlineAsm ( InlineAsm {
12541253 ref inputs,
@@ -1422,8 +1421,7 @@ impl<'a> LoweringContext<'a> {
14221421
14231422 // `[opt_ident]: loop { ... }`
14241423 let loop_block = self . block_expr ( match_expr) ;
1425- let loop_expr = hir:: ExprLoop ( loop_block,
1426- opt_ident. map ( |ident| self . lower_ident ( ident) ) ) ;
1424+ let loop_expr = hir:: ExprLoop ( loop_block, self . lower_opt_sp_ident ( opt_ident) ) ;
14271425 // add attributes to the outer returned expr node
14281426 let attrs = e. attrs . clone ( ) ;
14291427 return P ( hir:: Expr { id : e. id , node : loop_expr, span : e. span , attrs : attrs } ) ;
@@ -1503,8 +1501,7 @@ impl<'a> LoweringContext<'a> {
15031501
15041502 // `[opt_ident]: loop { ... }`
15051503 let loop_block = self . block_expr ( match_expr) ;
1506- let loop_expr = hir:: ExprLoop ( loop_block,
1507- opt_ident. map ( |ident| self . lower_ident ( ident) ) ) ;
1504+ let loop_expr = hir:: ExprLoop ( loop_block, self . lower_opt_sp_ident ( opt_ident) ) ;
15081505 let loop_expr =
15091506 P ( hir:: Expr { id : e. id , node : loop_expr, span : e. span , attrs : None } ) ;
15101507
0 commit comments