mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-29 10:58:02 +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
|
|
@ -483,6 +483,7 @@ impl DefMap {
|
||||||
curr_per_ns = match curr.def {
|
curr_per_ns = match curr.def {
|
||||||
ModuleDefId::ModuleId(module) => {
|
ModuleDefId::ModuleId(module) => {
|
||||||
if module.krate != self.krate {
|
if module.krate != self.krate {
|
||||||
|
// FIXME: Inefficient
|
||||||
let path = ModPath::from_segments(
|
let path = ModPath::from_segments(
|
||||||
PathKind::SELF,
|
PathKind::SELF,
|
||||||
path.segments()[i..].iter().cloned(),
|
path.segments()[i..].iter().cloned(),
|
||||||
|
|
|
||||||
|
|
@ -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