@@ -995,7 +995,7 @@ pub fn expr_to_spanned_string<'a>(
995995 cx : & ' a mut ExtCtxt ,
996996 expr : P < ast:: Expr > ,
997997 err_msg : & str ,
998- ) -> Result < Spanned < ( Symbol , ast:: StrStyle ) > , DiagnosticBuilder < ' a > > {
998+ ) -> Result < Spanned < ( Symbol , ast:: StrStyle ) > , Option < DiagnosticBuilder < ' a > > > {
999999 // Update `expr.span`'s ctxt now in case expr is an `include!` macro invocation.
10001000 let expr = expr. map ( |mut expr| {
10011001 expr. span = expr. span . apply_mark ( cx. current_expansion . mark ) ;
@@ -1007,16 +1007,17 @@ pub fn expr_to_spanned_string<'a>(
10071007 Err ( match expr. node {
10081008 ast:: ExprKind :: Lit ( ref l) => match l. node {
10091009 ast:: LitKind :: Str ( s, style) => return Ok ( respan ( expr. span , ( s, style) ) ) ,
1010- _ => cx. struct_span_err ( l. span , err_msg)
1010+ _ => Some ( cx. struct_span_err ( l. span , err_msg) )
10111011 } ,
1012- _ => cx. struct_span_err ( expr. span , err_msg)
1012+ ast:: ExprKind :: Err => None ,
1013+ _ => Some ( cx. struct_span_err ( expr. span , err_msg) )
10131014 } )
10141015}
10151016
10161017pub fn expr_to_string ( cx : & mut ExtCtxt , expr : P < ast:: Expr > , err_msg : & str )
10171018 -> Option < ( Symbol , ast:: StrStyle ) > {
10181019 expr_to_spanned_string ( cx, expr, err_msg)
1019- . map_err ( |mut err| err. emit ( ) )
1020+ . map_err ( |err| err . map ( | mut err| err. emit ( ) ) )
10201021 . ok ( )
10211022 . map ( |s| s. node )
10221023}
0 commit comments