File tree Expand file tree Collapse file tree 4 files changed +15
-5
lines changed
src/tools/rust-analyzer/crates/proc-macro-srv/src Expand file tree Collapse file tree 4 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -258,7 +258,9 @@ impl server::TokenStream for RaSpanServer {
258
258
& mut self ,
259
259
stream : Self :: TokenStream ,
260
260
) -> Vec < bridge:: TokenTree < Self :: TokenStream , Self :: Span , Self :: Symbol > > {
261
- stream. into_bridge ( )
261
+ stream. into_bridge ( & mut |first, second| {
262
+ server:: Span :: join ( self , first, second) . unwrap_or ( first)
263
+ } )
262
264
}
263
265
}
264
266
Original file line number Diff line number Diff line change @@ -238,7 +238,8 @@ impl server::TokenStream for TokenIdServer {
238
238
& mut self ,
239
239
stream : Self :: TokenStream ,
240
240
) -> Vec < bridge:: TokenTree < Self :: TokenStream , Self :: Span , Self :: Symbol > > {
241
- stream. into_bridge ( )
241
+ // Can't join with `TokenId`.
242
+ stream. into_bridge ( & mut |first, _second| first)
242
243
}
243
244
}
244
245
Original file line number Diff line number Diff line change @@ -56,7 +56,10 @@ impl<S: Copy> TokenStream<S> {
56
56
self . token_trees . is_empty ( )
57
57
}
58
58
59
- pub ( crate ) fn into_bridge ( self ) -> Vec < bridge:: TokenTree < Self , S , intern:: Symbol > > {
59
+ pub ( crate ) fn into_bridge (
60
+ self ,
61
+ join_spans : & mut dyn FnMut ( S , S ) -> S ,
62
+ ) -> Vec < bridge:: TokenTree < Self , S , intern:: Symbol > > {
60
63
let mut result = Vec :: new ( ) ;
61
64
let mut iter = self . token_trees . into_iter ( ) ;
62
65
while let Some ( tree) = iter. next ( ) {
@@ -98,7 +101,11 @@ impl<S: Copy> TokenStream<S> {
98
101
token_trees : iter. by_ref ( ) . take ( subtree. usize_len ( ) ) . collect ( ) ,
99
102
} )
100
103
} ,
101
- span : bridge:: DelimSpan :: from_single ( subtree. delimiter . open ) ,
104
+ span : bridge:: DelimSpan {
105
+ open : subtree. delimiter . open ,
106
+ close : subtree. delimiter . close ,
107
+ entire : join_spans ( subtree. delimiter . open , subtree. delimiter . close ) ,
108
+ } ,
102
109
} ) )
103
110
}
104
111
}
Original file line number Diff line number Diff line change @@ -144,7 +144,7 @@ fn test_fn_like_macro_clone_ident_subtree() {
144
144
SUBTREE $$ 42:2@0..100#ROOT2024 42:2@0..100#ROOT2024
145
145
IDENT ident 42:2@0..5#ROOT2024
146
146
PUNCH , [alone] 42:2@5..6#ROOT2024
147
- SUBTREE [] 42:2@7..8 #ROOT2024 42:2@7..8 #ROOT2024"# ] ] ,
147
+ SUBTREE [] 42:2@7..9 #ROOT2024 42:2@7..9 #ROOT2024"# ] ] ,
148
148
) ;
149
149
}
150
150
You can’t perform that action at this time.
0 commit comments