summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_expand/src/parse
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
commit9918693037dce8aa4bb6f08741b6812923486c18 (patch)
tree21d2b40bec7e6a7ea664acee056eb3d08e15a1cf /compiler/rustc_expand/src/parse
parentReleasing progress-linux version 1.75.0+dfsg1-5~progress7.99u1. (diff)
downloadrustc-9918693037dce8aa4bb6f08741b6812923486c18.tar.xz
rustc-9918693037dce8aa4bb6f08741b6812923486c18.zip
Merging upstream version 1.76.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'compiler/rustc_expand/src/parse')
-rw-r--r--compiler/rustc_expand/src/parse/tests.rs35
1 files changed, 22 insertions, 13 deletions
diff --git a/compiler/rustc_expand/src/parse/tests.rs b/compiler/rustc_expand/src/parse/tests.rs
index bdc20882a..7a888250c 100644
--- a/compiler/rustc_expand/src/parse/tests.rs
+++ b/compiler/rustc_expand/src/parse/tests.rs
@@ -4,7 +4,7 @@ use crate::tests::{
use rustc_ast::ptr::P;
use rustc_ast::token::{self, Delimiter, Token};
-use rustc_ast::tokenstream::{DelimSpan, TokenStream, TokenTree};
+use rustc_ast::tokenstream::{DelimSpacing, DelimSpan, Spacing, TokenStream, TokenTree};
use rustc_ast::visit;
use rustc_ast::{self as ast, PatKind};
use rustc_ast_pretty::pprust::item_to_string;
@@ -77,14 +77,14 @@ fn string_to_tts_macro() {
TokenTree::Token(Token { kind: token::Ident(name_macro_rules, false), .. }, _),
TokenTree::Token(Token { kind: token::Not, .. }, _),
TokenTree::Token(Token { kind: token::Ident(name_zip, false), .. }, _),
- TokenTree::Delimited(_, macro_delim, macro_tts),
+ TokenTree::Delimited(.., macro_delim, macro_tts),
] if name_macro_rules == &kw::MacroRules && name_zip.as_str() == "zip" => {
let tts = &macro_tts.trees().collect::<Vec<_>>();
match &tts[..] {
[
- TokenTree::Delimited(_, first_delim, first_tts),
+ TokenTree::Delimited(.., first_delim, first_tts),
TokenTree::Token(Token { kind: token::FatArrow, .. }, _),
- TokenTree::Delimited(_, second_delim, second_tts),
+ TokenTree::Delimited(.., second_delim, second_tts),
] if macro_delim == &Delimiter::Parenthesis => {
let tts = &first_tts.trees().collect::<Vec<_>>();
match &tts[..] {
@@ -116,27 +116,36 @@ fn string_to_tts_macro() {
#[test]
fn string_to_tts_1() {
create_default_session_globals_then(|| {
- let tts = string_to_stream("fn a (b : i32) { b; }".to_string());
+ let tts = string_to_stream("fn a(b: i32) { b; }".to_string());
let expected = TokenStream::new(vec![
TokenTree::token_alone(token::Ident(kw::Fn, false), sp(0, 2)),
- TokenTree::token_alone(token::Ident(Symbol::intern("a"), false), sp(3, 4)),
+ TokenTree::token_joint_hidden(token::Ident(Symbol::intern("a"), false), sp(3, 4)),
TokenTree::Delimited(
- DelimSpan::from_pair(sp(5, 6), sp(13, 14)),
+ DelimSpan::from_pair(sp(4, 5), sp(11, 12)),
+ // `JointHidden` because the `(` is followed immediately by
+ // `b`, `Alone` because the `)` is followed by whitespace.
+ DelimSpacing::new(Spacing::JointHidden, Spacing::Alone),
Delimiter::Parenthesis,
TokenStream::new(vec![
- TokenTree::token_alone(token::Ident(Symbol::intern("b"), false), sp(6, 7)),
- TokenTree::token_alone(token::Colon, sp(8, 9)),
- TokenTree::token_alone(token::Ident(sym::i32, false), sp(10, 13)),
+ TokenTree::token_joint(token::Ident(Symbol::intern("b"), false), sp(5, 6)),
+ TokenTree::token_alone(token::Colon, sp(6, 7)),
+ // `JointHidden` because the `i32` is immediately followed by the `)`.
+ TokenTree::token_joint_hidden(token::Ident(sym::i32, false), sp(8, 11)),
])
.into(),
),
TokenTree::Delimited(
- DelimSpan::from_pair(sp(15, 16), sp(20, 21)),
+ DelimSpan::from_pair(sp(13, 14), sp(18, 19)),
+ // First `Alone` because the `{` is followed by whitespace,
+ // second `Alone` because the `}` is followed immediately by
+ // EOF.
+ DelimSpacing::new(Spacing::Alone, Spacing::Alone),
Delimiter::Brace,
TokenStream::new(vec![
- TokenTree::token_joint(token::Ident(Symbol::intern("b"), false), sp(17, 18)),
- TokenTree::token_alone(token::Semi, sp(18, 19)),
+ TokenTree::token_joint(token::Ident(Symbol::intern("b"), false), sp(15, 16)),
+ // `Alone` because the `;` is followed by whitespace.
+ TokenTree::token_alone(token::Semi, sp(16, 17)),
])
.into(),
),