mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-11-26 13:51:55 +00:00
Auto merge of #15157 - HKalbasi:tokio-test, r=HKalbasi
Fix runnable detection for `#[tokio::test]` fix #15141 It is hacky, and it wouldn't work for e.g. this case: ```Rust use ::core::prelude; #[prelude::v1::test] fn foo() { } ``` But it works for the tokio case. We should use the name resolution here somehow, and after that we should probably also get rid of the ast based `test_related_attribute` function.
This commit is contained in:
commit
ad434fc4ac
2 changed files with 38 additions and 7 deletions
|
|
@ -273,7 +273,14 @@ impl Attrs {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_test(&self) -> bool {
|
pub fn is_test(&self) -> bool {
|
||||||
self.by_key("test").exists()
|
self.iter().any(|x| {
|
||||||
|
x.path()
|
||||||
|
.segments()
|
||||||
|
.iter()
|
||||||
|
.rev()
|
||||||
|
.zip(["core", "prelude", "v1", "test"].iter().rev())
|
||||||
|
.all(|x| x.0.as_str() == Some(x.1))
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_ignore(&self) -> bool {
|
pub fn is_ignore(&self) -> bool {
|
||||||
|
|
|
||||||
|
|
@ -589,6 +589,9 @@ fn main() {}
|
||||||
#[test]
|
#[test]
|
||||||
fn test_foo() {}
|
fn test_foo() {}
|
||||||
|
|
||||||
|
#[::core::prelude::v1::test]
|
||||||
|
fn test_full_path() {}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn test_foo() {}
|
fn test_foo() {}
|
||||||
|
|
@ -600,7 +603,7 @@ mod not_a_root {
|
||||||
fn main() {}
|
fn main() {}
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
&[TestMod, Bin, Test, Test, Bench],
|
&[TestMod, Bin, Test, Test, Test, Bench],
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
[
|
[
|
||||||
Runnable {
|
Runnable {
|
||||||
|
|
@ -609,7 +612,7 @@ mod not_a_root {
|
||||||
file_id: FileId(
|
file_id: FileId(
|
||||||
0,
|
0,
|
||||||
),
|
),
|
||||||
full_range: 0..137,
|
full_range: 0..190,
|
||||||
name: "",
|
name: "",
|
||||||
kind: Module,
|
kind: Module,
|
||||||
},
|
},
|
||||||
|
|
@ -659,8 +662,29 @@ mod not_a_root {
|
||||||
file_id: FileId(
|
file_id: FileId(
|
||||||
0,
|
0,
|
||||||
),
|
),
|
||||||
full_range: 41..75,
|
full_range: 41..92,
|
||||||
focus_range: 62..70,
|
focus_range: 73..87,
|
||||||
|
name: "test_full_path",
|
||||||
|
kind: Function,
|
||||||
|
},
|
||||||
|
kind: Test {
|
||||||
|
test_id: Path(
|
||||||
|
"test_full_path",
|
||||||
|
),
|
||||||
|
attr: TestAttr {
|
||||||
|
ignore: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
cfg: None,
|
||||||
|
},
|
||||||
|
Runnable {
|
||||||
|
use_name_in_title: false,
|
||||||
|
nav: NavigationTarget {
|
||||||
|
file_id: FileId(
|
||||||
|
0,
|
||||||
|
),
|
||||||
|
full_range: 94..128,
|
||||||
|
focus_range: 115..123,
|
||||||
name: "test_foo",
|
name: "test_foo",
|
||||||
kind: Function,
|
kind: Function,
|
||||||
},
|
},
|
||||||
|
|
@ -680,8 +704,8 @@ mod not_a_root {
|
||||||
file_id: FileId(
|
file_id: FileId(
|
||||||
0,
|
0,
|
||||||
),
|
),
|
||||||
full_range: 77..99,
|
full_range: 130..152,
|
||||||
focus_range: 89..94,
|
focus_range: 142..147,
|
||||||
name: "bench",
|
name: "bench",
|
||||||
kind: Function,
|
kind: Function,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue