if i > 0 {
inner.push(TokenTree::Token(self.span, token::Colon).into());
}
- inner.push(TokenTree::Token(self.span,
- token::Ident(segment.identifier, false)).into());
+ inner.push(TokenTree::Token(
+ self.span, token::Token::from_ast_ident(segment.identifier)
+ ).into());
}
inner.push(self.tokens.clone());
Ident { ctxt: ident.ctxt.apply_mark(cx.current_expansion.mark), ..ident };
sp = sp.with_ctxt(sp.ctxt().apply_mark(cx.current_expansion.mark));
result.push(TokenTree::Token(sp, token::Dollar).into());
- result.push(TokenTree::Token(sp, token::Ident(ident, false)).into());
+ result.push(TokenTree::Token(sp, token::Token::from_ast_ident(ident)).into());
}
}
quoted::TokenTree::Delimited(mut span, delimited) => {
/// Recovers a `Token` from an `ast::Ident`. This creates a raw identifier if necessary.
pub fn from_ast_ident(ident: ast::Ident) -> Token {
- Ident(ident, is_reserved_ident(ident))
+ Ident(ident, is_reserved_ident(ident) && !is_path_segment_keyword(ident))
}
/// Returns `true` if the token starts with '>'.