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.rs | 232 |
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 --"#]], ); |