Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/mbe/src/tests.rs')
-rw-r--r--crates/mbe/src/tests.rs232
1 files changed, 117 insertions, 115 deletions
diff --git a/crates/mbe/src/tests.rs b/crates/mbe/src/tests.rs
index 769455faac..56034516ef 100644
--- a/crates/mbe/src/tests.rs
+++ b/crates/mbe/src/tests.rs
@@ -3,7 +3,9 @@
// FIXME: Move more of the nameres independent tests from
// crates\hir-def\src\macro_expansion_tests\mod.rs to this
use expect_test::expect;
-use span::{Edition, EditionedFileId, ErasedFileAstId, FileId, Span, SpanAnchor, SyntaxContext};
+use span::{
+ Edition, EditionedFileId, FileId, ROOT_ERASED_FILE_AST_ID, Span, SpanAnchor, SyntaxContext,
+};
use stdx::format_to;
use tt::{TextRange, TextSize};
@@ -24,7 +26,7 @@ fn check_(
def_edition,
SpanAnchor {
file_id: EditionedFileId::new(FileId::from_raw(0), def_edition),
- ast_id: ErasedFileAstId::from_raw(0),
+ ast_id: ROOT_ERASED_FILE_AST_ID,
},
SyntaxContext::root(Edition::CURRENT),
decl,
@@ -37,7 +39,7 @@ fn check_(
};
let call_anchor = SpanAnchor {
file_id: EditionedFileId::new(FileId::from_raw(1), call_edition),
- ast_id: ErasedFileAstId::from_raw(0),
+ ast_id: ROOT_ERASED_FILE_AST_ID,
};
let arg_tt = syntax_bridge::parse_to_token_tree(
call_edition,
@@ -110,8 +112,8 @@ fn unbalanced_brace() {
"#,
r#""#,
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- SUBTREE {} 0:[email protected]#ROOT2024 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..0#ROOT2024 1:Root[0000, 0]@0..0#ROOT2024
+ SUBTREE {} 0:Root[0000, 0]@9..10#ROOT2024 0:Root[0000, 0]@11..12#ROOT2024
{}"#]],
);
@@ -133,25 +135,25 @@ fn token_mapping_smoke_test() {
struct MyTraitMap2
"#,
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- IDENT struct 0:[email protected]#ROOT2024
- IDENT MyTraitMap2 1:[email protected]#ROOT2024
- SUBTREE {} 0:[email protected]#ROOT2024 0:[email protected]#ROOT2024
- IDENT map 0:[email protected]#ROOT2024
- PUNCH : [alone] 0:[email protected]#ROOT2024
- PUNCH : [joint] 0:[email protected]#ROOT2024
- PUNCH : [alone] 0:[email protected]#ROOT2024
- IDENT std 0:[email protected]#ROOT2024
- PUNCH : [joint] 0:[email protected]#ROOT2024
- PUNCH : [alone] 0:[email protected]#ROOT2024
- IDENT collections 0:[email protected]#ROOT2024
- PUNCH : [joint] 0:[email protected]#ROOT2024
- PUNCH : [alone] 0:[email protected]#ROOT2024
- IDENT HashSet 0:[email protected]#ROOT2024
- PUNCH < [alone] 0:[email protected]#ROOT2024
- SUBTREE () 0:[email protected]#ROOT2024 0:[email protected]#ROOT2024
- PUNCH > [joint] 0:[email protected]#ROOT2024
- PUNCH , [alone] 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..20#ROOT2024 1:Root[0000, 0]@0..20#ROOT2024
+ IDENT struct 0:Root[0000, 0]@34..40#ROOT2024
+ IDENT MyTraitMap2 1:Root[0000, 0]@8..19#ROOT2024
+ SUBTREE {} 0:Root[0000, 0]@48..49#ROOT2024 0:Root[0000, 0]@100..101#ROOT2024
+ IDENT map 0:Root[0000, 0]@58..61#ROOT2024
+ PUNCH : [alone] 0:Root[0000, 0]@61..62#ROOT2024
+ PUNCH : [joint] 0:Root[0000, 0]@63..64#ROOT2024
+ PUNCH : [alone] 0:Root[0000, 0]@64..65#ROOT2024
+ IDENT std 0:Root[0000, 0]@65..68#ROOT2024
+ PUNCH : [joint] 0:Root[0000, 0]@68..69#ROOT2024
+ PUNCH : [alone] 0:Root[0000, 0]@69..70#ROOT2024
+ IDENT collections 0:Root[0000, 0]@70..81#ROOT2024
+ PUNCH : [joint] 0:Root[0000, 0]@81..82#ROOT2024
+ PUNCH : [alone] 0:Root[0000, 0]@82..83#ROOT2024
+ IDENT HashSet 0:Root[0000, 0]@83..90#ROOT2024
+ PUNCH < [alone] 0:Root[0000, 0]@90..91#ROOT2024
+ SUBTREE () 0:Root[0000, 0]@91..92#ROOT2024 0:Root[0000, 0]@92..93#ROOT2024
+ PUNCH > [joint] 0:Root[0000, 0]@93..94#ROOT2024
+ PUNCH , [alone] 0:Root[0000, 0]@94..95#ROOT2024
struct MyTraitMap2 {
map: ::std::collections::HashSet<()>,
@@ -180,28 +182,28 @@ fn main() {
}
"#,
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- IDENT fn 1:[email protected]#ROOT2024
- IDENT main 1:[email protected]#ROOT2024
- SUBTREE () 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- SUBTREE {} 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- LITERAL Integer 1 1:[email protected]#ROOT2024
- PUNCH ; [alone] 1:[email protected]#ROOT2024
- LITERAL Float 1.0 1:[email protected]#ROOT2024
- PUNCH ; [alone] 1:[email protected]#ROOT2024
- SUBTREE () 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- SUBTREE () 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- LITERAL Integer 1 1:[email protected]#ROOT2024
- PUNCH , [alone] 1:[email protected]#ROOT2024
- PUNCH , [alone] 1:[email protected]#ROOT2024
- PUNCH . [alone] 1:[email protected]#ROOT2024
- LITERAL Float 0.0 1:[email protected]#ROOT2024
- PUNCH ; [alone] 1:[email protected]#ROOT2024
- IDENT let 1:[email protected]#ROOT2024
- IDENT x 1:[email protected]#ROOT2024
- PUNCH = [alone] 1:[email protected]#ROOT2024
- LITERAL Integer 1 1:[email protected]#ROOT2024
- PUNCH ; [alone] 1:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..63#ROOT2024 1:Root[0000, 0]@0..63#ROOT2024
+ IDENT fn 1:Root[0000, 0]@1..3#ROOT2024
+ IDENT main 1:Root[0000, 0]@4..8#ROOT2024
+ SUBTREE () 1:Root[0000, 0]@8..9#ROOT2024 1:Root[0000, 0]@9..10#ROOT2024
+ SUBTREE {} 1:Root[0000, 0]@11..12#ROOT2024 1:Root[0000, 0]@61..62#ROOT2024
+ LITERAL Integer 1 1:Root[0000, 0]@17..18#ROOT2024
+ PUNCH ; [alone] 1:Root[0000, 0]@18..19#ROOT2024
+ LITERAL Float 1.0 1:Root[0000, 0]@24..27#ROOT2024
+ PUNCH ; [alone] 1:Root[0000, 0]@27..28#ROOT2024
+ SUBTREE () 1:Root[0000, 0]@33..34#ROOT2024 1:Root[0000, 0]@39..40#ROOT2024
+ SUBTREE () 1:Root[0000, 0]@34..35#ROOT2024 1:Root[0000, 0]@37..38#ROOT2024
+ LITERAL Integer 1 1:Root[0000, 0]@35..36#ROOT2024
+ PUNCH , [alone] 1:Root[0000, 0]@36..37#ROOT2024
+ PUNCH , [alone] 1:Root[0000, 0]@38..39#ROOT2024
+ PUNCH . [alone] 1:Root[0000, 0]@40..41#ROOT2024
+ LITERAL Float 0.0 1:Root[0000, 0]@41..44#ROOT2024
+ PUNCH ; [alone] 1:Root[0000, 0]@44..45#ROOT2024
+ IDENT let 1:Root[0000, 0]@50..53#ROOT2024
+ IDENT x 1:Root[0000, 0]@54..55#ROOT2024
+ PUNCH = [alone] 1:Root[0000, 0]@56..57#ROOT2024
+ LITERAL Integer 1 1:Root[0000, 0]@58..59#ROOT2024
+ PUNCH ; [alone] 1:Root[0000, 0]@59..60#ROOT2024
fn main(){
1;
@@ -227,14 +229,14 @@ fn expr_2021() {
const { 1 },
"#,
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- IDENT _ 1:[email protected]#ROOT2024
- PUNCH ; [joint] 0:[email protected]#ROOT2024
- SUBTREE () 0:[email protected]#ROOT2024 0:[email protected]#ROOT2024
- IDENT const 1:[email protected]#ROOT2024
- SUBTREE {} 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- LITERAL Integer 1 1:[email protected]#ROOT2024
- PUNCH ; [alone] 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..25#ROOT2024 1:Root[0000, 0]@0..25#ROOT2024
+ IDENT _ 1:Root[0000, 0]@5..6#ROOT2024
+ PUNCH ; [joint] 0:Root[0000, 0]@36..37#ROOT2024
+ SUBTREE () 0:Root[0000, 0]@34..35#ROOT2024 0:Root[0000, 0]@34..35#ROOT2024
+ IDENT const 1:Root[0000, 0]@12..17#ROOT2024
+ SUBTREE {} 1:Root[0000, 0]@18..19#ROOT2024 1:Root[0000, 0]@22..23#ROOT2024
+ LITERAL Integer 1 1:Root[0000, 0]@20..21#ROOT2024
+ PUNCH ; [alone] 0:Root[0000, 0]@39..40#ROOT2024
_;
(const {
@@ -255,13 +257,13 @@ fn expr_2021() {
expect![[r#"
ExpandError {
inner: (
- 1:[email protected]#ROOT2024,
+ 1:Root[0000, 0]@5..6#ROOT2024,
NoMatchingRule,
),
}
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH ; [alone] 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..8#ROOT2024 1:Root[0000, 0]@0..8#ROOT2024
+ PUNCH ; [alone] 0:Root[0000, 0]@39..40#ROOT2024
;"#]],
);
@@ -279,13 +281,13 @@ fn expr_2021() {
expect![[r#"
ExpandError {
inner: (
- 1:[email protected]#ROOT2024,
+ 1:Root[0000, 0]@5..10#ROOT2024,
NoMatchingRule,
),
}
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH ; [alone] 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..18#ROOT2024 1:Root[0000, 0]@0..18#ROOT2024
+ PUNCH ; [alone] 0:Root[0000, 0]@39..40#ROOT2024
;"#]],
);
@@ -305,26 +307,26 @@ fn expr_2021() {
break 'foo bar,
"#,
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- LITERAL Integer 4 1:[email protected]#ROOT2024
- PUNCH ; [joint] 0:[email protected]#ROOT2024
- LITERAL Str literal 1:[email protected]#ROOT2024
- PUNCH ; [joint] 0:[email protected]#ROOT2024
- SUBTREE () 0:[email protected]#ROOT2024 0:[email protected]#ROOT2024
- IDENT funcall 1:[email protected]#ROOT2024
- SUBTREE () 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH ; [joint] 0:[email protected]#ROOT2024
- SUBTREE () 0:[email protected]#ROOT2024 0:[email protected]#ROOT2024
- IDENT future 1:[email protected]#ROOT2024
- PUNCH . [alone] 1:[email protected]#ROOT2024
- IDENT await 1:[email protected]#ROOT2024
- PUNCH ; [joint] 0:[email protected]#ROOT2024
- SUBTREE () 0:[email protected]#ROOT2024 0:[email protected]#ROOT2024
- IDENT break 1:[email protected]#ROOT2024
- PUNCH ' [joint] 1:[email protected]#ROOT2024
- IDENT foo 1:[email protected]#ROOT2024
- IDENT bar 1:[email protected]#ROOT2024
- PUNCH ; [alone] 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..76#ROOT2024 1:Root[0000, 0]@0..76#ROOT2024
+ LITERAL Integer 4 1:Root[0000, 0]@5..6#ROOT2024
+ PUNCH ; [joint] 0:Root[0000, 0]@41..42#ROOT2024
+ LITERAL Str literal 1:Root[0000, 0]@12..21#ROOT2024
+ PUNCH ; [joint] 0:Root[0000, 0]@41..42#ROOT2024
+ SUBTREE () 0:Root[0000, 0]@39..40#ROOT2024 0:Root[0000, 0]@39..40#ROOT2024
+ IDENT funcall 1:Root[0000, 0]@27..34#ROOT2024
+ SUBTREE () 1:Root[0000, 0]@34..35#ROOT2024 1:Root[0000, 0]@35..36#ROOT2024
+ PUNCH ; [joint] 0:Root[0000, 0]@41..42#ROOT2024
+ SUBTREE () 0:Root[0000, 0]@39..40#ROOT2024 0:Root[0000, 0]@39..40#ROOT2024
+ IDENT future 1:Root[0000, 0]@42..48#ROOT2024
+ PUNCH . [alone] 1:Root[0000, 0]@48..49#ROOT2024
+ IDENT await 1:Root[0000, 0]@49..54#ROOT2024
+ PUNCH ; [joint] 0:Root[0000, 0]@41..42#ROOT2024
+ SUBTREE () 0:Root[0000, 0]@39..40#ROOT2024 0:Root[0000, 0]@39..40#ROOT2024
+ IDENT break 1:Root[0000, 0]@60..65#ROOT2024
+ PUNCH ' [joint] 1:Root[0000, 0]@66..67#ROOT2024
+ IDENT foo 1:Root[0000, 0]@67..70#ROOT2024
+ IDENT bar 1:Root[0000, 0]@71..74#ROOT2024
+ PUNCH ; [alone] 0:Root[0000, 0]@44..45#ROOT2024
4;
"literal";
@@ -346,13 +348,13 @@ fn expr_2021() {
expect![[r#"
ExpandError {
inner: (
- 1:[email protected]#ROOT2024,
+ 1:Root[0000, 0]@5..6#ROOT2024,
NoMatchingRule,
),
}
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH ; [alone] 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..8#ROOT2024 1:Root[0000, 0]@0..8#ROOT2024
+ PUNCH ; [alone] 0:Root[0000, 0]@44..45#ROOT2024
;"#]],
);
@@ -370,88 +372,88 @@ fn minus_belongs_to_literal() {
check(
"-1",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [alone] 0:[email protected]#ROOT2024
- LITERAL Integer 1 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..2#ROOT2024 1:Root[0000, 0]@0..2#ROOT2024
+ PUNCH - [alone] 0:Root[0000, 0]@10..11#ROOT2024
+ LITERAL Integer 1 0:Root[0000, 0]@11..12#ROOT2024
-1"#]],
);
check(
"- 1",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [alone] 0:[email protected]#ROOT2024
- LITERAL Integer 1 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..3#ROOT2024 1:Root[0000, 0]@0..3#ROOT2024
+ PUNCH - [alone] 0:Root[0000, 0]@10..11#ROOT2024
+ LITERAL Integer 1 0:Root[0000, 0]@11..12#ROOT2024
-1"#]],
);
check(
"-2",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [alone] 0:[email protected]#ROOT2024
- LITERAL Integer 2 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..2#ROOT2024 1:Root[0000, 0]@0..2#ROOT2024
+ PUNCH - [alone] 0:Root[0000, 0]@25..26#ROOT2024
+ LITERAL Integer 2 0:Root[0000, 0]@27..28#ROOT2024
-2"#]],
);
check(
"- 2",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [alone] 0:[email protected]#ROOT2024
- LITERAL Integer 2 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..3#ROOT2024 1:Root[0000, 0]@0..3#ROOT2024
+ PUNCH - [alone] 0:Root[0000, 0]@25..26#ROOT2024
+ LITERAL Integer 2 0:Root[0000, 0]@27..28#ROOT2024
-2"#]],
);
check(
"-3.0",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [alone] 0:[email protected]#ROOT2024
- LITERAL Float 3.0 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..4#ROOT2024 1:Root[0000, 0]@0..4#ROOT2024
+ PUNCH - [alone] 0:Root[0000, 0]@43..44#ROOT2024
+ LITERAL Float 3.0 0:Root[0000, 0]@45..48#ROOT2024
-3.0"#]],
);
check(
"- 3.0",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [alone] 0:[email protected]#ROOT2024
- LITERAL Float 3.0 0:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..5#ROOT2024 1:Root[0000, 0]@0..5#ROOT2024
+ PUNCH - [alone] 0:Root[0000, 0]@43..44#ROOT2024
+ LITERAL Float 3.0 0:Root[0000, 0]@45..48#ROOT2024
-3.0"#]],
);
check(
"@1",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- LITERAL Integer 1 1:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..2#ROOT2024 1:Root[0000, 0]@0..2#ROOT2024
+ LITERAL Integer 1 1:Root[0000, 0]@1..2#ROOT2024
1"#]],
);
check(
"@-1",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [alone] 1:[email protected]#ROOT2024
- LITERAL Integer 1 1:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..3#ROOT2024 1:Root[0000, 0]@0..3#ROOT2024
+ PUNCH - [alone] 1:Root[0000, 0]@1..2#ROOT2024
+ LITERAL Integer 1 1:Root[0000, 0]@2..3#ROOT2024
-1"#]],
);
check(
"@1.0",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- LITERAL Float 1.0 1:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..4#ROOT2024 1:Root[0000, 0]@0..4#ROOT2024
+ LITERAL Float 1.0 1:Root[0000, 0]@1..4#ROOT2024
1.0"#]],
);
check(
"@-1.0",
expect![[r#"
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [alone] 1:[email protected]#ROOT2024
- LITERAL Float 1.0 1:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..5#ROOT2024 1:Root[0000, 0]@0..5#ROOT2024
+ PUNCH - [alone] 1:Root[0000, 0]@1..2#ROOT2024
+ LITERAL Float 1.0 1:Root[0000, 0]@2..5#ROOT2024
-1.0"#]],
);
@@ -460,16 +462,16 @@ fn minus_belongs_to_literal() {
expect![[r#"
ExpandError {
inner: (
- 1:[email protected]#ROOT2024,
+ 1:Root[0000, 0]@1..2#ROOT2024,
BindingError(
"expected literal",
),
),
}
- SUBTREE $$ 1:[email protected]#ROOT2024 1:[email protected]#ROOT2024
- PUNCH - [joint] 1:[email protected]#ROOT2024
- PUNCH - [alone] 1:[email protected]#ROOT2024
+ SUBTREE $$ 1:Root[0000, 0]@0..6#ROOT2024 1:Root[0000, 0]@0..6#ROOT2024
+ PUNCH - [joint] 1:Root[0000, 0]@1..2#ROOT2024
+ PUNCH - [alone] 1:Root[0000, 0]@2..3#ROOT2024
--"#]],
);