@@ -2,7 +2,7 @@ use crate::ast;
22use crate :: ext:: base:: ExtCtxt ;
33use crate :: parse:: { self , token, ParseSess } ;
44use crate :: parse:: lexer:: comments;
5- use crate :: tokenstream:: { self , DelimSpan , IsJoint :: * , TokenStream , TreeAndJoint } ;
5+ use crate :: tokenstream:: { self , DelimSpan , TokenStream } ;
66
77use errors:: Diagnostic ;
88use rustc_data_structures:: sync:: Lrc ;
@@ -44,15 +44,14 @@ impl ToInternal<token::DelimToken> for Delimiter {
4444 }
4545}
4646
47- impl FromInternal < ( TreeAndJoint , & ' _ ParseSess , & ' _ mut Vec < Self > ) >
47+ impl FromInternal < ( tokenstream :: TokenTree , & ' _ ParseSess , & ' _ mut Vec < Self > ) >
4848 for TokenTree < Group , Punct , Ident , Literal >
4949{
50- fn from_internal ( ( ( tree, is_joint ) , sess, stack) : ( TreeAndJoint , & ParseSess , & mut Vec < Self > ) )
50+ fn from_internal ( ( tree, sess, stack) : ( tokenstream :: TokenTree , & ParseSess , & mut Vec < Self > ) )
5151 -> Self {
5252 use crate :: parse:: token:: * ;
5353
54- let joint = is_joint == Joint ;
55- let Token { kind, span } = match tree {
54+ let Token { kind, span, joint } = match tree {
5655 tokenstream:: TokenTree :: Delimited ( span, delim, tts) => {
5756 let delimiter = Delimiter :: from_internal ( delim) ;
5857 return TokenTree :: Group ( Group {
@@ -63,6 +62,7 @@ impl FromInternal<(TreeAndJoint, &'_ ParseSess, &'_ mut Vec<Self>)>
6362 }
6463 tokenstream:: TokenTree :: Token ( token) => token,
6564 } ;
65+ let joint = joint == Joint ;
6666
6767 macro_rules! tt {
6868 ( $ty: ident { $( $field: ident $( : $value: expr) * ) ,+ $( , ) ? } ) => (
@@ -262,8 +262,11 @@ impl ToInternal<TokenStream> for TokenTree<Group, Punct, Ident, Literal> {
262262 _ => unreachable ! ( ) ,
263263 } ;
264264
265- let tree = tokenstream:: TokenTree :: token ( kind, span) ;
266- TokenStream :: new ( vec ! [ ( tree, if joint { Joint } else { NonJoint } ) ] )
265+ let token = Token :: new ( kind, span)
266+ . with_joint ( if joint { Joint } else { NonJoint } ) ;
267+ let tree = tokenstream:: TokenTree :: Token ( token) ;
268+
269+ TokenStream :: new ( vec ! [ ( tree) ] )
267270 }
268271}
269272
@@ -440,7 +443,7 @@ impl server::TokenStreamIter for Rustc<'_> {
440443 ) -> Option < TokenTree < Self :: Group , Self :: Punct , Self :: Ident , Self :: Literal > > {
441444 loop {
442445 let tree = iter. stack . pop ( ) . or_else ( || {
443- let next = iter. cursor . next_with_joint ( ) ?;
446+ let next = iter. cursor . next ( ) ?;
444447 Some ( TokenTree :: from_internal ( ( next, self . sess , & mut iter. stack ) ) )
445448 } ) ?;
446449 // HACK: The condition "dummy span + group with empty delimiter" represents an AST
0 commit comments