@@ -59,7 +59,7 @@ use syntax::ast::*;
5959use syntax:: errors;
6060use syntax:: ext:: hygiene:: { Mark , SyntaxContext } ;
6161use syntax:: ptr:: P ;
62- use syntax:: codemap:: { self , respan, Spanned } ;
62+ use syntax:: codemap:: { self , respan, Spanned , CompilerDesugaringKind } ;
6363use syntax:: std_inject;
6464use syntax:: symbol:: { Symbol , keywords} ;
6565use syntax:: util:: small_vector:: SmallVector ;
@@ -396,8 +396,9 @@ impl<'a> LoweringContext<'a> {
396396 Symbol :: gensym ( s)
397397 }
398398
399- fn allow_internal_unstable ( & self , reason : & ' static str , mut span : Span ) -> Span {
400- let reason = codemap:: CompilerDesugaringKind :: from ( reason) ;
399+ fn allow_internal_unstable ( & self , reason : CompilerDesugaringKind , mut span : Span )
400+ -> Span
401+ {
401402 let mark = Mark :: fresh ( Mark :: root ( ) ) ;
402403 mark. set_expn_info ( codemap:: ExpnInfo {
403404 call_site : span,
@@ -1763,7 +1764,8 @@ impl<'a> LoweringContext<'a> {
17631764 let move_val_init = [ "intrinsics" , "move_val_init" ] ;
17641765 let inplace_finalize = [ "ops" , "InPlace" , "finalize" ] ;
17651766
1766- let unstable_span = self . allow_internal_unstable ( "<-" , e. span ) ;
1767+ let unstable_span =
1768+ self . allow_internal_unstable ( CompilerDesugaringKind :: BackArrow , e. span ) ;
17671769 let make_call = |this : & mut LoweringContext , p, args| {
17681770 let path = P ( this. expr_std_path ( unstable_span, p, ThinVec :: new ( ) ) ) ;
17691771 P ( this. expr_call ( e. span , path, args) )
@@ -1976,12 +1978,14 @@ impl<'a> LoweringContext<'a> {
19761978 e1. iter ( ) . map ( |e| ( "start" , e) ) . chain ( e2. iter ( ) . map ( |e| ( "end" , e) ) )
19771979 . map ( |( s, e) | {
19781980 let expr = P ( self . lower_expr ( & e) ) ;
1979- let unstable_span = self . allow_internal_unstable ( "..." , e. span ) ;
1981+ let unstable_span =
1982+ self . allow_internal_unstable ( CompilerDesugaringKind :: DotFill , e. span ) ;
19801983 self . field ( Symbol :: intern ( s) , expr, unstable_span)
19811984 } ) . collect :: < P < [ hir:: Field ] > > ( ) ;
19821985
19831986 let is_unit = fields. is_empty ( ) ;
1984- let unstable_span = self . allow_internal_unstable ( "..." , e. span ) ;
1987+ let unstable_span =
1988+ self . allow_internal_unstable ( CompilerDesugaringKind :: DotFill , e. span ) ;
19851989 let struct_path =
19861990 iter:: once ( "ops" ) . chain ( iter:: once ( path) )
19871991 . collect :: < Vec < _ > > ( ) ;
@@ -2317,7 +2321,8 @@ impl<'a> LoweringContext<'a> {
23172321 // return Try::from_error(From::from(err)),
23182322 // }
23192323
2320- let unstable_span = self . allow_internal_unstable ( "?" , e. span ) ;
2324+ let unstable_span =
2325+ self . allow_internal_unstable ( CompilerDesugaringKind :: QuestionMark , e. span ) ;
23212326
23222327 // Try::into_result(<expr>)
23232328 let discr = {
0 commit comments