@@ -5,6 +5,7 @@ use std::rc::Rc;
55use  std:: sync:: Arc ; 
66
77use  rustc_ast as  ast; 
8+ use  rustc_ast:: token:: TokenKind ; 
89use  rustc_ast:: tokenstream:: TokenStream ; 
910use  rustc_ast:: { join_path_idents,  token} ; 
1011use  rustc_ast_pretty:: pprust; 
@@ -18,7 +19,7 @@ use rustc_parse::{new_parser_from_file, unwrap_or_emit_fatal, utf8_error};
1819use  rustc_session:: lint:: builtin:: INCOMPLETE_INCLUDE ; 
1920use  rustc_session:: parse:: ParseSess ; 
2021use  rustc_span:: source_map:: SourceMap ; 
21- use  rustc_span:: { ByteSymbol ,  Pos ,  Span ,  Symbol } ; 
22+ use  rustc_span:: { ByteSymbol ,  ErrorGuaranteed ,   Pos ,  Span ,  Symbol ,  sym } ; 
2223use  smallvec:: SmallVec ; 
2324
2425use  crate :: errors; 
@@ -31,37 +32,43 @@ pub(crate) fn expand_line(
3132    cx :  & mut  ExtCtxt < ' _ > , 
3233    sp :  Span , 
3334    tts :  TokenStream , 
34- )  -> MacroExpanderResult < ' static >  { 
35+ )  -> Result < TokenStream ,   ErrorGuaranteed >  { 
3536    let  sp = cx. with_def_site_ctxt ( sp) ; 
3637    check_zero_tts ( cx,  sp,  tts,  "line!" ) ; 
3738
3839    let  topmost = cx. expansion_cause ( ) . unwrap_or ( sp) ; 
3940    let  loc = cx. source_map ( ) . lookup_char_pos ( topmost. lo ( ) ) ; 
4041
41-     ExpandResult :: Ready ( MacEager :: expr ( cx. expr_u32 ( topmost,  loc. line  as  u32 ) ) ) 
42+     Ok ( TokenStream :: token_alone ( 
43+         TokenKind :: lit ( token:: Integer ,  sym:: integer ( loc. line ) ,  Some ( sym:: u32) ) , 
44+         sp, 
45+     ) ) 
4246} 
4347
4448/// Expand `column!()` to the current column number. 
4549pub ( crate )  fn  expand_column ( 
4650    cx :  & mut  ExtCtxt < ' _ > , 
4751    sp :  Span , 
4852    tts :  TokenStream , 
49- )  -> MacroExpanderResult < ' static >  { 
53+ )  -> Result < TokenStream ,   ErrorGuaranteed >  { 
5054    let  sp = cx. with_def_site_ctxt ( sp) ; 
5155    check_zero_tts ( cx,  sp,  tts,  "column!" ) ; 
5256
5357    let  topmost = cx. expansion_cause ( ) . unwrap_or ( sp) ; 
5458    let  loc = cx. source_map ( ) . lookup_char_pos ( topmost. lo ( ) ) ; 
5559
56-     ExpandResult :: Ready ( MacEager :: expr ( cx. expr_u32 ( topmost,  loc. col . to_usize ( )  as  u32  + 1 ) ) ) 
60+     Ok ( TokenStream :: token_alone ( 
61+         TokenKind :: lit ( token:: Integer ,  sym:: integer ( loc. col . to_usize ( )  + 1 ) ,  Some ( sym:: u32) ) , 
62+         sp, 
63+     ) ) 
5764} 
5865
5966/// Expand `file!()` to the current filename. 
6067pub ( crate )  fn  expand_file ( 
6168    cx :  & mut  ExtCtxt < ' _ > , 
6269    sp :  Span , 
6370    tts :  TokenStream , 
64- )  -> MacroExpanderResult < ' static >  { 
71+ )  -> Result < TokenStream ,   ErrorGuaranteed >  { 
6572    let  sp = cx. with_def_site_ctxt ( sp) ; 
6673    check_zero_tts ( cx,  sp,  tts,  "file!" ) ; 
6774
@@ -70,37 +77,43 @@ pub(crate) fn expand_file(
7077
7178    use  rustc_session:: RemapFileNameExt ; 
7279    use  rustc_session:: config:: RemapPathScopeComponents ; 
73-     ExpandResult :: Ready ( MacEager :: expr ( cx. expr_str ( 
74-         topmost, 
75-         Symbol :: intern ( 
76-             & loc. file . name . for_scope ( cx. sess ,  RemapPathScopeComponents :: MACRO ) . to_string_lossy ( ) , 
80+     Ok ( TokenStream :: token_alone ( 
81+         TokenKind :: lit ( 
82+             token:: RawStr , 
83+             Symbol :: intern ( 
84+                 & loc. file 
85+                     . name 
86+                     . for_scope ( cx. sess ,  RemapPathScopeComponents :: MACRO ) 
87+                     . to_string_lossy ( ) , 
88+             ) , 
89+             None , 
7790        ) , 
78-     ) ) ) 
91+         sp, 
92+     ) ) 
7993} 
8094
8195/// Expand `stringify!($input)`. 
8296pub ( crate )  fn  expand_stringify ( 
8397    cx :  & mut  ExtCtxt < ' _ > , 
8498    sp :  Span , 
8599    tts :  TokenStream , 
86- )  -> MacroExpanderResult < ' static >  { 
100+ )  -> Result < TokenStream ,   ErrorGuaranteed >  { 
87101    let  sp = cx. with_def_site_ctxt ( sp) ; 
88102    let  s = pprust:: tts_to_string ( & tts) ; 
89-     ExpandResult :: Ready ( MacEager :: expr ( cx . expr_str ( sp ,  Symbol :: intern ( & s) ) ) ) 
103+     Ok ( TokenStream :: token_alone ( TokenKind :: lit ( token :: RawStr ,  Symbol :: intern ( & s) ,   None ) ,  sp ) ) 
90104} 
91105
92106/// Expand `module_path!()` to (a textual representation of) the current module path. 
93107pub ( crate )  fn  expand_mod ( 
94108    cx :  & mut  ExtCtxt < ' _ > , 
95109    sp :  Span , 
96110    tts :  TokenStream , 
97- )  -> MacroExpanderResult < ' static >  { 
111+ )  -> Result < TokenStream ,   ErrorGuaranteed >  { 
98112    let  sp = cx. with_def_site_ctxt ( sp) ; 
99113    check_zero_tts ( cx,  sp,  tts,  "module_path!" ) ; 
100114    let  mod_path = & cx. current_expansion . module . mod_path ; 
101115    let  string = join_path_idents ( mod_path) ; 
102- 
103-     ExpandResult :: Ready ( MacEager :: expr ( cx. expr_str ( sp,  Symbol :: intern ( & string) ) ) ) 
116+     Ok ( TokenStream :: token_alone ( TokenKind :: lit ( token:: RawStr ,  Symbol :: intern ( & string) ,  None ) ,  sp) ) 
104117} 
105118
106119/// Expand `include!($input)`. 
0 commit comments