mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-11-03 21:25:25 +00:00 
			
		
		
		
	minor: Add a mbe test for parsing negative literals
This commit is contained in:
		
							parent
							
								
									b3e086ad10
								
							
						
					
					
						commit
						9d1364b730
					
				
					 2 changed files with 118 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -356,3 +356,120 @@ fn expr_2021() {
 | 
			
		|||
            ;"#]],
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[test]
 | 
			
		||||
fn minus_belongs_to_literal() {
 | 
			
		||||
    let decl = r#"
 | 
			
		||||
(-1) => {-1};
 | 
			
		||||
(- 2) => {- 2};
 | 
			
		||||
(- 3.0) => {- 3.0};
 | 
			
		||||
(@$lit:literal) => {$lit}
 | 
			
		||||
"#;
 | 
			
		||||
    let check = |args, expect| check(Edition::CURRENT, Edition::CURRENT, decl, args, expect);
 | 
			
		||||
    check(
 | 
			
		||||
        "-1",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..2#ROOT2024 1:0@0..2#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 0:0@10..11#ROOT2024
 | 
			
		||||
              LITERAL Integer 1 0:0@11..12#ROOT2024
 | 
			
		||||
 | 
			
		||||
            -1"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "- 1",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..3#ROOT2024 1:0@0..3#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 0:0@10..11#ROOT2024
 | 
			
		||||
              LITERAL Integer 1 0:0@11..12#ROOT2024
 | 
			
		||||
 | 
			
		||||
            -1"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "-2",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..2#ROOT2024 1:0@0..2#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 0:0@25..26#ROOT2024
 | 
			
		||||
              LITERAL Integer 2 0:0@27..28#ROOT2024
 | 
			
		||||
 | 
			
		||||
            -2"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "- 2",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..3#ROOT2024 1:0@0..3#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 0:0@25..26#ROOT2024
 | 
			
		||||
              LITERAL Integer 2 0:0@27..28#ROOT2024
 | 
			
		||||
 | 
			
		||||
            -2"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "-3.0",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..4#ROOT2024 1:0@0..4#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 0:0@43..44#ROOT2024
 | 
			
		||||
              LITERAL Float 3.0 0:0@45..48#ROOT2024
 | 
			
		||||
 | 
			
		||||
            -3.0"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "- 3.0",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..5#ROOT2024 1:0@0..5#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 0:0@43..44#ROOT2024
 | 
			
		||||
              LITERAL Float 3.0 0:0@45..48#ROOT2024
 | 
			
		||||
 | 
			
		||||
            -3.0"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "@1",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..2#ROOT2024 1:0@0..2#ROOT2024
 | 
			
		||||
              LITERAL Integer 1 1:0@1..2#ROOT2024
 | 
			
		||||
 | 
			
		||||
            1"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "@-1",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..3#ROOT2024 1:0@0..3#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 1:0@1..2#ROOT2024
 | 
			
		||||
              LITERAL Integer 1 1:0@2..3#ROOT2024
 | 
			
		||||
 | 
			
		||||
            -1"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "@1.0",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..4#ROOT2024 1:0@0..4#ROOT2024
 | 
			
		||||
              LITERAL Float 1.0 1:0@1..4#ROOT2024
 | 
			
		||||
 | 
			
		||||
            1.0"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "@-1.0",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            SUBTREE $$ 1:0@0..5#ROOT2024 1:0@0..5#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 1:0@1..2#ROOT2024
 | 
			
		||||
              LITERAL Float 1.0 1:0@2..5#ROOT2024
 | 
			
		||||
 | 
			
		||||
            -1.0"#]],
 | 
			
		||||
    );
 | 
			
		||||
    check(
 | 
			
		||||
        "@--1.0",
 | 
			
		||||
        expect![[r#"
 | 
			
		||||
            ExpandError {
 | 
			
		||||
                inner: (
 | 
			
		||||
                    1:0@1..2#ROOT2024,
 | 
			
		||||
                    BindingError(
 | 
			
		||||
                        "expected literal",
 | 
			
		||||
                    ),
 | 
			
		||||
                ),
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            SUBTREE $$ 1:0@0..6#ROOT2024 1:0@0..6#ROOT2024
 | 
			
		||||
              PUNCH   - [joint] 1:0@1..2#ROOT2024
 | 
			
		||||
              PUNCH   - [alone] 1:0@2..3#ROOT2024
 | 
			
		||||
 | 
			
		||||
            --"#]],
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue