@@ -995,7 +995,7 @@ pub fn expr_to_spanned_string<'a>(
995
995
cx : & ' a mut ExtCtxt ,
996
996
expr : P < ast:: Expr > ,
997
997
err_msg : & str ,
998
- ) -> Result < Spanned < ( Symbol , ast:: StrStyle ) > , DiagnosticBuilder < ' a > > {
998
+ ) -> Result < Spanned < ( Symbol , ast:: StrStyle ) > , Option < DiagnosticBuilder < ' a > > > {
999
999
// Update `expr.span`'s ctxt now in case expr is an `include!` macro invocation.
1000
1000
let expr = expr. map ( |mut expr| {
1001
1001
expr. span = expr. span . apply_mark ( cx. current_expansion . mark ) ;
@@ -1007,16 +1007,17 @@ pub fn expr_to_spanned_string<'a>(
1007
1007
Err ( match expr. node {
1008
1008
ast:: ExprKind :: Lit ( ref l) => match l. node {
1009
1009
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) )
1011
1011
} ,
1012
- _ => cx. struct_span_err ( expr. span , err_msg)
1012
+ ast:: ExprKind :: Err => None ,
1013
+ _ => Some ( cx. struct_span_err ( expr. span , err_msg) )
1013
1014
} )
1014
1015
}
1015
1016
1016
1017
pub fn expr_to_string ( cx : & mut ExtCtxt , expr : P < ast:: Expr > , err_msg : & str )
1017
1018
-> Option < ( Symbol , ast:: StrStyle ) > {
1018
1019
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 ( ) ) )
1020
1021
. ok ( )
1021
1022
. map ( |s| s. node )
1022
1023
}
0 commit comments