about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/ide/src/inlay_hints.rs24
-rw-r--r--crates/ide/src/inlay_hints/chaining.rs268
-rw-r--r--crates/ide/src/runnables.rs1518
3 files changed, 226 insertions, 1584 deletions
diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs
index e82d730e4a3..6d8d1032051 100644
--- a/crates/ide/src/inlay_hints.rs
+++ b/crates/ide/src/inlay_hints.rs
@@ -593,7 +593,6 @@ mod tests {
     use hir::ClosureStyle;
     use itertools::Itertools;
     use test_utils::extract_annotations;
-    use text_edit::{TextRange, TextSize};
 
     use crate::inlay_hints::{AdjustmentHints, AdjustmentHintsMode};
     use crate::DiscriminantHints;
@@ -654,29 +653,6 @@ mod tests {
         assert_eq!(expected, actual, "\nExpected:\n{expected:#?}\n\nActual:\n{actual:#?}");
     }
 
-    #[track_caller]
-    pub(super) fn check_expect(config: InlayHintsConfig, ra_fixture: &str, expect: Expect) {
-        let (analysis, file_id) = fixture::file(ra_fixture);
-        let inlay_hints = analysis.inlay_hints(&config, file_id, None).unwrap();
-        expect.assert_debug_eq(&inlay_hints)
-    }
-
-    #[track_caller]
-    pub(super) fn check_expect_clear_loc(
-        config: InlayHintsConfig,
-        ra_fixture: &str,
-        expect: Expect,
-    ) {
-        let (analysis, file_id) = fixture::file(ra_fixture);
-        let mut inlay_hints = analysis.inlay_hints(&config, file_id, None).unwrap();
-        inlay_hints.iter_mut().flat_map(|hint| &mut hint.label.parts).for_each(|hint| {
-            if let Some(loc) = &mut hint.linked_location {
-                loc.range = TextRange::empty(TextSize::from(0));
-            }
-        });
-        expect.assert_debug_eq(&inlay_hints)
-    }
-
     /// Computes inlay hints for the fixture, applies all the provided text edits and then runs
     /// expect test.
     #[track_caller]
diff --git a/crates/ide/src/inlay_hints/chaining.rs b/crates/ide/src/inlay_hints/chaining.rs
index c9e9a223786..b6063978e92 100644
--- a/crates/ide/src/inlay_hints/chaining.rs
+++ b/crates/ide/src/inlay_hints/chaining.rs
@@ -75,12 +75,12 @@ pub(super) fn hints(
 
 #[cfg(test)]
 mod tests {
-    use expect_test::expect;
+    use expect_test::{expect, Expect};
+    use text_edit::{TextRange, TextSize};
 
     use crate::{
-        inlay_hints::tests::{
-            check_expect, check_expect_clear_loc, check_with_config, DISABLED_CONFIG, TEST_CONFIG,
-        },
+        fixture,
+        inlay_hints::tests::{check_with_config, DISABLED_CONFIG, TEST_CONFIG},
         InlayHintsConfig,
     };
 
@@ -89,6 +89,33 @@ mod tests {
         check_with_config(InlayHintsConfig { chaining_hints: true, ..DISABLED_CONFIG }, ra_fixture);
     }
 
+    #[track_caller]
+    pub(super) fn check_expect(config: InlayHintsConfig, ra_fixture: &str, expect: Expect) {
+        let (analysis, file_id) = fixture::file(ra_fixture);
+        let inlay_hints = analysis.inlay_hints(&config, file_id, None).unwrap();
+        let filtered =
+            inlay_hints.into_iter().map(|hint| (hint.range, hint.label)).collect::<Vec<_>>();
+        expect.assert_debug_eq(&filtered)
+    }
+
+    #[track_caller]
+    pub(super) fn check_expect_clear_loc(
+        config: InlayHintsConfig,
+        ra_fixture: &str,
+        expect: Expect,
+    ) {
+        let (analysis, file_id) = fixture::file(ra_fixture);
+        let mut inlay_hints = analysis.inlay_hints(&config, file_id, None).unwrap();
+        inlay_hints.iter_mut().flat_map(|hint| &mut hint.label.parts).for_each(|hint| {
+            if let Some(loc) = &mut hint.linked_location {
+                loc.range = TextRange::empty(TextSize::from(0));
+            }
+        });
+        let filtered =
+            inlay_hints.into_iter().map(|hint| (hint.range, hint.label)).collect::<Vec<_>>();
+        expect.assert_debug_eq(&filtered)
+    }
+
     #[test]
     fn chaining_hints_ignore_comments() {
         check_expect(
@@ -109,13 +136,9 @@ fn main() {
 "#,
             expect![[r#"
                 [
-                    InlayHint {
-                        range: 147..172,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    (
+                        147..172,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "B",
@@ -131,16 +154,10 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 147..154,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        147..154,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "A",
@@ -156,9 +173,7 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
+                    ),
                 ]
             "#]],
         );
@@ -204,13 +219,9 @@ fn main() {
     }"#,
             expect![[r#"
                 [
-                    InlayHint {
-                        range: 143..190,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    (
+                        143..190,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "C",
@@ -226,16 +237,10 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 143..179,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        143..179,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "B",
@@ -251,9 +256,7 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
+                    ),
                 ]
             "#]],
         );
@@ -283,13 +286,9 @@ fn main() {
 }"#,
             expect![[r#"
                 [
-                    InlayHint {
-                        range: 143..190,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    (
+                        143..190,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "C",
@@ -305,16 +304,10 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 143..179,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        143..179,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "B",
@@ -330,9 +323,7 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
+                    ),
                 ]
             "#]],
         );
@@ -363,13 +354,9 @@ fn main() {
 "#,
             expect![[r#"
                 [
-                    InlayHint {
-                        range: 246..283,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    (
+                        246..283,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "B",
@@ -398,16 +385,10 @@ fn main() {
                             },
                             "<i32, bool>>",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 246..265,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        246..265,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "A",
@@ -436,9 +417,7 @@ fn main() {
                             },
                             "<i32, bool>>",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
+                    ),
                 ]
             "#]],
         );
@@ -471,13 +450,9 @@ fn main() {
 "#,
             expect![[r#"
                 [
-                    InlayHint {
-                        range: 174..241,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    (
+                        174..241,
+                        [
                             "impl ",
                             InlayHintLabelPart {
                                 text: "Iterator",
@@ -506,16 +481,10 @@ fn main() {
                             },
                             " = ()>",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 174..224,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        174..224,
+                        [
                             "impl ",
                             InlayHintLabelPart {
                                 text: "Iterator",
@@ -544,16 +513,10 @@ fn main() {
                             },
                             " = ()>",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 174..206,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        174..206,
+                        [
                             "impl ",
                             InlayHintLabelPart {
                                 text: "Iterator",
@@ -582,16 +545,10 @@ fn main() {
                             },
                             " = ()>",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 174..189,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        174..189,
+                        [
                             "&mut ",
                             InlayHintLabelPart {
                                 text: "MyIter",
@@ -607,9 +564,7 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
+                    ),
                 ]
             "#]],
         );
@@ -639,13 +594,9 @@ fn main() {
 "#,
             expect![[r#"
                 [
-                    InlayHint {
-                        range: 124..130,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Type,
-                        label: [
+                    (
+                        124..130,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "Struct",
@@ -661,25 +612,10 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: Some(
-                            TextEdit {
-                                indels: [
-                                    Indel {
-                                        insert: ": Struct",
-                                        delete: 130..130,
-                                    },
-                                ],
-                            },
-                        ),
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 145..185,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        145..185,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "Struct",
@@ -695,16 +631,10 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 145..168,
-                        position: After,
-                        pad_left: true,
-                        pad_right: false,
-                        kind: Chaining,
-                        label: [
+                    ),
+                    (
+                        145..168,
+                        [
                             "",
                             InlayHintLabelPart {
                                 text: "Struct",
@@ -720,16 +650,10 @@ fn main() {
                             },
                             "",
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
-                    InlayHint {
-                        range: 222..228,
-                        position: Before,
-                        pad_left: false,
-                        pad_right: true,
-                        kind: Parameter,
-                        label: [
+                    ),
+                    (
+                        222..228,
+                        [
                             InlayHintLabelPart {
                                 text: "self",
                                 linked_location: Some(
@@ -743,9 +667,7 @@ fn main() {
                                 tooltip: "",
                             },
                         ],
-                        text_edit: None,
-                        needs_resolve: true,
-                    },
+                    ),
                 ]
             "#]],
         );
diff --git a/crates/ide/src/runnables.rs b/crates/ide/src/runnables.rs
index d334e66d3dd..352ce89820d 100644
--- a/crates/ide/src/runnables.rs
+++ b/crates/ide/src/runnables.rs
@@ -555,28 +555,33 @@ mod tests {
 
     use crate::fixture;
 
-    use super::{RunnableTestKind::*, *};
-
-    fn check(
-        ra_fixture: &str,
-        // FIXME: fold this into `expect` as well
-        actions: &[RunnableTestKind],
-        expect: Expect,
-    ) {
+    fn check(ra_fixture: &str, expect: Expect) {
         let (analysis, position) = fixture::position(ra_fixture);
         let mut runnables = analysis.runnables(position.file_id).unwrap();
         runnables.sort_by_key(|it| (it.nav.full_range.start(), it.nav.name.clone()));
-        expect.assert_debug_eq(&runnables);
-        assert_eq!(
-            actions,
-            runnables.into_iter().map(|it| it.test_kind()).collect::<Vec<_>>().as_slice()
-        );
+
+        let result = runnables
+            .into_iter()
+            .map(|runnable| {
+                let mut a = format!("({:?}, {:?}", runnable.test_kind(), runnable.nav);
+                if runnable.use_name_in_title {
+                    a.push_str(", true");
+                }
+                if let Some(cfg) = runnable.cfg {
+                    a.push_str(&format!(", {cfg:?}"));
+                }
+                a.push_str(")");
+                a
+            })
+            .collect::<Vec<_>>();
+        expect.assert_debug_eq(&result);
     }
 
     fn check_tests(ra_fixture: &str, expect: Expect) {
         let (analysis, position) = fixture::position(ra_fixture);
         let tests = analysis.related_tests(position, None).unwrap();
-        expect.assert_debug_eq(&tests);
+        let navigation_targets = tests.into_iter().map(|runnable| runnable.nav).collect::<Vec<_>>();
+        expect.assert_debug_eq(&navigation_targets);
     }
 
     #[test]
@@ -607,133 +612,15 @@ mod not_a_root {
     fn main() {}
 }
 "#,
-            &[TestMod, Bin, Bin, Test, Test, Test, Bench],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 0..253,
-                            name: "",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..13,
-                            focus_range: 4..8,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 15..76,
-                            focus_range: 42..71,
-                            name: "__cortex_m_rt_main_trampoline",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 78..102,
-                            focus_range: 89..97,
-                            name: "test_foo",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "test_foo",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 104..155,
-                            focus_range: 136..150,
-                            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: 157..191,
-                            focus_range: 178..186,
-                            name: "test_foo",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "test_foo",
-                            ),
-                            attr: TestAttr {
-                                ignore: true,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 193..215,
-                            focus_range: 205..210,
-                            name: "bench",
-                            kind: Function,
-                        },
-                        kind: Bench {
-                            test_id: Path(
-                                "bench",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 0..253, name: \"\", kind: Module })",
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 1..13, focus_range: 4..8, name: \"main\", kind: Function })",
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 15..76, focus_range: 42..71, name: \"__cortex_m_rt_main_trampoline\", kind: Function })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 78..102, focus_range: 89..97, name: \"test_foo\", kind: Function })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 104..155, focus_range: 136..150, name: \"test_full_path\", kind: Function })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 157..191, focus_range: 178..186, name: \"test_foo\", kind: Function })",
+                    "(Bench, NavigationTarget { file_id: FileId(0), full_range: 193..215, focus_range: 205..210, name: \"bench\", kind: Function })",
                 ]
             "#]],
         );
@@ -835,155 +722,17 @@ trait Test {
 /// ```
 impl Test for StructWithRunnable {}
 "#,
-            &[Bin, DocTest, DocTest, DocTest, DocTest, DocTest, DocTest, DocTest, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..13,
-                            focus_range: 4..8,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 15..74,
-                            name: "should_have_runnable",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "should_have_runnable",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 76..148,
-                            name: "should_have_runnable_1",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "should_have_runnable_1",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 150..254,
-                            name: "should_have_runnable_2",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "should_have_runnable_2",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 256..320,
-                            name: "should_have_no_runnable_3",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "should_have_no_runnable_3",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 322..398,
-                            name: "should_have_no_runnable_4",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "should_have_no_runnable_4",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 900..965,
-                            name: "StructWithRunnable",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "StructWithRunnable",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 967..1024,
-                            focus_range: 1003..1021,
-                            name: "impl",
-                            kind: Impl,
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "StructWithRunnable",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1088..1154,
-                            focus_range: 1133..1151,
-                            name: "impl",
-                            kind: Impl,
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "StructWithRunnable",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 1..13, focus_range: 4..8, name: \"main\", kind: Function })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 15..74, name: \"should_have_runnable\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 76..148, name: \"should_have_runnable_1\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 150..254, name: \"should_have_runnable_2\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 256..320, name: \"should_have_no_runnable_3\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 322..398, name: \"should_have_no_runnable_4\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 900..965, name: \"StructWithRunnable\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 967..1024, focus_range: 1003..1021, name: \"impl\", kind: Impl })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 1088..1154, focus_range: 1133..1151, name: \"impl\", kind: Impl })",
                 ]
             "#]],
         );
@@ -1005,39 +754,10 @@ impl Data {
     fn foo() {}
 }
 "#,
-            &[Bin, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..13,
-                            focus_range: 4..8,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 44..98,
-                            name: "foo",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Data::foo",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 1..13, focus_range: 4..8, name: \"main\", kind: Function })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 44..98, name: \"foo\" })",
                 ]
             "#]],
         );
@@ -1059,39 +779,10 @@ impl Data<'a> {
     fn foo() {}
 }
 "#,
-            &[Bin, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..13,
-                            focus_range: 4..8,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 52..106,
-                            name: "foo",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Data<'a>::foo",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 1..13, focus_range: 4..8, name: \"main\", kind: Function })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 52..106, name: \"foo\" })",
                 ]
             "#]],
         );
@@ -1113,39 +804,10 @@ impl<T, U> Data<'a, T, U> {
     fn foo() {}
 }
 "#,
-            &[Bin, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..13,
-                            focus_range: 4..8,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 70..124,
-                            name: "foo",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Data<'a,T,U>::foo",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 1..13, focus_range: 4..8, name: \"main\", kind: Function })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 70..124, name: \"foo\" })",
                 ]
             "#]],
         );
@@ -1167,39 +829,10 @@ impl<const N: usize> Data<N> {
     fn foo() {}
 }
 "#,
-            &[Bin, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..13,
-                            focus_range: 4..8,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 79..133,
-                            name: "foo",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Data<N>::foo",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 1..13, focus_range: 4..8, name: \"main\", kind: Function })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 79..133, name: \"foo\" })",
                 ]
             "#]],
         );
@@ -1221,39 +854,10 @@ impl<'a, T, const N: usize> Data<'a, T, N> {
     fn foo() {}
 }
 "#,
-            &[Bin, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..13,
-                            focus_range: 4..8,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 100..154,
-                            name: "foo",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Data<'a,T,N>::foo",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 1..13, focus_range: 4..8, name: \"main\", kind: Function })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 100..154, name: \"foo\" })",
                 ]
             "#]],
         );
@@ -1269,47 +873,10 @@ mod test_mod {
     fn test_foo1() {}
 }
 "#,
-            &[TestMod, Test],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..51,
-                            focus_range: 5..13,
-                            name: "test_mod",
-                            kind: Module,
-                            description: "mod test_mod",
-                        },
-                        kind: TestMod {
-                            path: "test_mod",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 20..49,
-                            focus_range: 35..44,
-                            name: "test_foo1",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "test_mod::test_foo1",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 1..51, focus_range: 5..13, name: \"test_mod\", kind: Module, description: \"mod test_mod\" })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 20..49, focus_range: 35..44, name: \"test_foo1\", kind: Function })",
                 ]
             "#]],
         );
@@ -1342,123 +909,14 @@ mod root_tests {
     mod nested_tests_4 {}
 }
 "#,
-            &[TestMod, TestMod, Test, Test, TestMod, Test],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 22..323,
-                            focus_range: 26..40,
-                            name: "nested_tests_0",
-                            kind: Module,
-                            description: "mod nested_tests_0",
-                        },
-                        kind: TestMod {
-                            path: "root_tests::nested_tests_0",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 51..192,
-                            focus_range: 55..69,
-                            name: "nested_tests_1",
-                            kind: Module,
-                            description: "mod nested_tests_1",
-                        },
-                        kind: TestMod {
-                            path: "root_tests::nested_tests_0::nested_tests_1",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 84..126,
-                            focus_range: 107..121,
-                            name: "nested_test_11",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "root_tests::nested_tests_0::nested_tests_1::nested_test_11",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 140..182,
-                            focus_range: 163..177,
-                            name: "nested_test_12",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "root_tests::nested_tests_0::nested_tests_1::nested_test_12",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 202..286,
-                            focus_range: 206..220,
-                            name: "nested_tests_2",
-                            kind: Module,
-                            description: "mod nested_tests_2",
-                        },
-                        kind: TestMod {
-                            path: "root_tests::nested_tests_0::nested_tests_2",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 235..276,
-                            focus_range: 258..271,
-                            name: "nested_test_2",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "root_tests::nested_tests_0::nested_tests_2::nested_test_2",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 22..323, focus_range: 26..40, name: \"nested_tests_0\", kind: Module, description: \"mod nested_tests_0\" })",
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 51..192, focus_range: 55..69, name: \"nested_tests_1\", kind: Module, description: \"mod nested_tests_1\" })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 84..126, focus_range: 107..121, name: \"nested_test_11\", kind: Function })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 140..182, focus_range: 163..177, name: \"nested_test_12\", kind: Function })",
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 202..286, focus_range: 206..220, name: \"nested_tests_2\", kind: Module, description: \"mod nested_tests_2\" })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 235..276, focus_range: 258..271, name: \"nested_test_2\", kind: Function })",
                 ]
             "#]],
         );
@@ -1474,52 +932,10 @@ $0
 #[cfg(feature = "foo")]
 fn test_foo1() {}
 "#,
-            &[TestMod, Test],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 0..51,
-                            name: "",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..50,
-                            focus_range: 36..45,
-                            name: "test_foo1",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "test_foo1",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: Some(
-                            Atom(
-                                KeyValue {
-                                    key: "feature",
-                                    value: "foo",
-                                },
-                            ),
-                        ),
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 0..51, name: \"\", kind: Module })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 1..50, focus_range: 36..45, name: \"test_foo1\", kind: Function }, Atom(KeyValue { key: \"feature\", value: \"foo\" }))",
                 ]
             "#]],
         );
@@ -1535,62 +951,10 @@ $0
 #[cfg(all(feature = "foo", feature = "bar"))]
 fn test_foo1() {}
 "#,
-            &[TestMod, Test],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 0..73,
-                            name: "",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..72,
-                            focus_range: 58..67,
-                            name: "test_foo1",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "test_foo1",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: Some(
-                            All(
-                                [
-                                    Atom(
-                                        KeyValue {
-                                            key: "feature",
-                                            value: "foo",
-                                        },
-                                    ),
-                                    Atom(
-                                        KeyValue {
-                                            key: "feature",
-                                            value: "bar",
-                                        },
-                                    ),
-                                ],
-                            ),
-                        ),
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 0..73, name: \"\", kind: Module })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 1..72, focus_range: 58..67, name: \"test_foo1\", kind: Function }, All([Atom(KeyValue { key: \"feature\", value: \"foo\" }), Atom(KeyValue { key: \"feature\", value: \"bar\" })]))",
                 ]
             "#]],
         );
@@ -1606,7 +970,6 @@ mod test_mod {
     fn foo1() {}
 }
 "#,
-            &[],
             expect![[r#"
                 []
             "#]],
@@ -1628,25 +991,9 @@ impl Foo {
     fn foo() {}
 }
         "#,
-            &[DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                1,
-                            ),
-                            full_range: 27..81,
-                            name: "foo",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "foo::Foo::foo",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(DocTest, NavigationTarget { file_id: FileId(1), full_range: 27..81, name: \"foo\" })",
                 ]
             "#]],
         );
@@ -1683,110 +1030,14 @@ mod tests {
 gen2!();
 gen_main!();
 "#,
-            &[TestMod, TestMod, Test, Test, TestMod, Bin],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 0..315,
-                            name: "",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 267..292,
-                            focus_range: 271..276,
-                            name: "tests",
-                            kind: Module,
-                            description: "mod tests",
-                        },
-                        kind: TestMod {
-                            path: "tests",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 283..290,
-                            name: "foo_test",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "tests::foo_test",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 293..301,
-                            name: "foo_test2",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "tests2::foo_test2",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 293..301,
-                            name: "tests2",
-                            kind: Module,
-                            description: "mod tests2",
-                        },
-                        kind: TestMod {
-                            path: "tests2",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 302..314,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 0..315, name: \"\", kind: Module })",
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 267..292, focus_range: 271..276, name: \"tests\", kind: Module, description: \"mod tests\" })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 283..290, name: \"foo_test\", kind: Function })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 293..301, name: \"foo_test2\", kind: Function }, true)",
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 293..301, name: \"tests2\", kind: Module, description: \"mod tests2\" }, true)",
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 302..314, name: \"main\", kind: Function })",
                 ]
             "#]],
         );
@@ -1812,85 +1063,12 @@ macro_rules! foo {
 }
 foo!();
 "#,
-            &[Test, Test, Test, TestMod],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 210..217,
-                            name: "foo0",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "foo_tests::foo0",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 210..217,
-                            name: "foo1",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "foo_tests::foo1",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 210..217,
-                            name: "foo2",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "foo_tests::foo2",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 210..217,
-                            name: "foo_tests",
-                            kind: Module,
-                            description: "mod foo_tests",
-                        },
-                        kind: TestMod {
-                            path: "foo_tests",
-                        },
-                        cfg: None,
-                    },
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 210..217, name: \"foo0\", kind: Function }, true)",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 210..217, name: \"foo1\", kind: Function }, true)",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 210..217, name: \"foo2\", kind: Function }, true)",
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 210..217, name: \"foo_tests\", kind: Module, description: \"mod foo_tests\" }, true)",
                 ]
             "#]],
         );
@@ -1909,7 +1087,6 @@ mod tests {
     fn t() {}
 }
 "#,
-            &[],
             expect![[r#"
                 []
             "#]],
@@ -1929,26 +1106,9 @@ fn t0() {}
 #[test]
 fn t1() {}
 "#,
-            &[TestMod],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..7,
-                            focus_range: 5..6,
-                            name: "m",
-                            kind: Module,
-                            description: "mod m",
-                        },
-                        kind: TestMod {
-                            path: "m",
-                        },
-                        cfg: None,
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 1..7, focus_range: 5..6, name: \"m\", kind: Module, description: \"mod m\" })",
                 ]
             "#]],
         );
@@ -1967,66 +1127,11 @@ fn t0() {}
 #[test]
 fn t1() {}
 "#,
-            &[TestMod, Test, Test],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                1,
-                            ),
-                            full_range: 0..39,
-                            name: "m",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "m",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                1,
-                            ),
-                            full_range: 1..19,
-                            focus_range: 12..14,
-                            name: "t0",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "m::t0",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                1,
-                            ),
-                            full_range: 20..38,
-                            focus_range: 31..33,
-                            name: "t1",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "m::t1",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(1), full_range: 0..39, name: \"m\", kind: Module })",
+                    "(Test, NavigationTarget { file_id: FileId(1), full_range: 1..19, focus_range: 12..14, name: \"t0\", kind: Function })",
+                    "(Test, NavigationTarget { file_id: FileId(1), full_range: 20..38, focus_range: 31..33, name: \"t1\", kind: Function })",
                 ]
             "#]],
         );
@@ -2047,68 +1152,11 @@ mod module {
     fn t1() {}
 }
 "#,
-            &[TestMod, Test, Test],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 26..94,
-                            focus_range: 30..36,
-                            name: "module",
-                            kind: Module,
-                            description: "mod module",
-                        },
-                        kind: TestMod {
-                            path: "module",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 43..65,
-                            focus_range: 58..60,
-                            name: "t0",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "module::t0",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 70..92,
-                            focus_range: 85..87,
-                            name: "t1",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "module::t1",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 26..94, focus_range: 30..36, name: \"module\", kind: Module, description: \"mod module\" }, true)",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 43..65, focus_range: 58..60, name: \"t0\", kind: Function }, true)",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 70..92, focus_range: 85..87, name: \"t1\", kind: Function }, true)",
                 ]
             "#]],
         );
@@ -2143,26 +1191,14 @@ mod tests {
 "#,
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 31..85,
-                            focus_range: 46..54,
-                            name: "foo_test",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "tests::foo_test",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
+                    NavigationTarget {
+                        file_id: FileId(
+                            0,
+                        ),
+                        full_range: 31..85,
+                        focus_range: 46..54,
+                        name: "foo_test",
+                        kind: Function,
                     },
                 ]
             "#]],
@@ -2188,26 +1224,14 @@ mod tests {
 "#,
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 71..122,
-                            focus_range: 86..94,
-                            name: "foo_test",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "tests::foo_test",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
+                    NavigationTarget {
+                        file_id: FileId(
+                            0,
+                        ),
+                        full_range: 71..122,
+                        focus_range: 86..94,
+                        name: "foo_test",
+                        kind: Function,
                     },
                 ]
             "#]],
@@ -2240,26 +1264,14 @@ mod tests {
 "#,
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 133..183,
-                            focus_range: 148..156,
-                            name: "foo_test",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "tests::foo_test",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
+                    NavigationTarget {
+                        file_id: FileId(
+                            0,
+                        ),
+                        full_range: 133..183,
+                        focus_range: 148..156,
+                        name: "foo_test",
+                        kind: Function,
                     },
                 ]
             "#]],
@@ -2292,47 +1304,23 @@ mod tests {
 "#,
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 121..185,
-                            focus_range: 136..145,
-                            name: "foo2_test",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "tests::foo2_test",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 52..115,
-                            focus_range: 67..75,
-                            name: "foo_test",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "tests::foo_test",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
+                    NavigationTarget {
+                        file_id: FileId(
+                            0,
+                        ),
+                        full_range: 121..185,
+                        focus_range: 136..145,
+                        name: "foo2_test",
+                        kind: Function,
+                    },
+                    NavigationTarget {
+                        file_id: FileId(
+                            0,
+                        ),
+                        full_range: 52..115,
+                        focus_range: 67..75,
+                        name: "foo_test",
+                        kind: Function,
                     },
                 ]
             "#]],
@@ -2354,39 +1342,10 @@ impl<A, C, const D: u32> Data<'a, A, 12, C, D> {
     fn foo() {}
 }
 "#,
-            &[Bin, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..13,
-                            focus_range: 4..8,
-                            name: "main",
-                            kind: Function,
-                        },
-                        kind: Bin,
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 121..156,
-                            name: "foo",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Data<'a,A,12,C,D>::foo",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(Bin, NavigationTarget { file_id: FileId(0), full_range: 1..13, focus_range: 4..8, name: \"main\", kind: Function })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 121..156, name: \"foo\" })",
                 ]
             "#]],
         );
@@ -2416,77 +1375,12 @@ impl Foo<Foo<(), ()>, ()> {
     fn t() {}
 }
 "#,
-            &[DocTest, DocTest, DocTest, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 20..103,
-                            focus_range: 47..56,
-                            name: "impl",
-                            kind: Impl,
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Foo<T,U>",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 63..101,
-                            name: "t",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Foo<T,U>::t",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 105..188,
-                            focus_range: 126..146,
-                            name: "impl",
-                            kind: Impl,
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Foo<Foo<(),()>,()>",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 153..186,
-                            name: "t",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "Foo<Foo<(),()>,()>::t",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 20..103, focus_range: 47..56, name: \"impl\", kind: Impl })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 63..101, name: \"t\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 105..188, focus_range: 126..146, name: \"impl\", kind: Impl })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 153..186, name: \"t\" })",
                 ]
             "#]],
         );
@@ -2512,7 +1406,6 @@ macro_rules! foo {
     };
 }
 "#,
-            &[],
             expect![[r#"
                 []
             "#]],
@@ -2532,25 +1425,9 @@ macro_rules! foo {
     };
 }
 "#,
-            &[DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..94,
-                            name: "foo",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "foo",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 1..94, name: \"foo\" })",
                 ]
             "#]],
         );
@@ -2596,149 +1473,16 @@ mod r#mod {
     impl<T> r#trait for r#struct<T> {}
 }
 "#,
-            &[TestMod, Test, DocTest, DocTest, DocTest, DocTest, DocTest, DocTest],
             expect![[r#"
                 [
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 1..461,
-                            focus_range: 5..10,
-                            name: "r#mod",
-                            kind: Module,
-                            description: "mod r#mod",
-                        },
-                        kind: TestMod {
-                            path: "r#mod",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 17..41,
-                            focus_range: 32..36,
-                            name: "r#fn",
-                            kind: Function,
-                        },
-                        kind: Test {
-                            test_id: Path(
-                                "r#mod::r#fn",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 47..84,
-                            name: "r#for",
-                            container_name: "r#mod",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "r#mod::r#for",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 90..146,
-                            name: "r#struct",
-                            container_name: "r#mod",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "r#mod::r#struct",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 152..266,
-                            focus_range: 189..205,
-                            name: "impl",
-                            kind: Impl,
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "r#struct<r#type>",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 216..260,
-                            name: "r#fn",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "r#mod::r#struct<r#type>::r#fn",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 323..367,
-                            name: "r#fn",
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "r#mod::r#struct<r#enum>::r#fn",
-                            ),
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 401..459,
-                            focus_range: 445..456,
-                            name: "impl",
-                            kind: Impl,
-                        },
-                        kind: DocTest {
-                            test_id: Path(
-                                "r#struct<T>",
-                            ),
-                        },
-                        cfg: None,
-                    },
+                    "(TestMod, NavigationTarget { file_id: FileId(0), full_range: 1..461, focus_range: 5..10, name: \"r#mod\", kind: Module, description: \"mod r#mod\" })",
+                    "(Test, NavigationTarget { file_id: FileId(0), full_range: 17..41, focus_range: 32..36, name: \"r#fn\", kind: Function })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 47..84, name: \"r#for\", container_name: \"r#mod\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 90..146, name: \"r#struct\", container_name: \"r#mod\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 152..266, focus_range: 189..205, name: \"impl\", kind: Impl })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 216..260, name: \"r#fn\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 323..367, name: \"r#fn\" })",
+                    "(DocTest, NavigationTarget { file_id: FileId(0), full_range: 401..459, focus_range: 445..456, name: \"impl\", kind: Impl })",
                 ]
             "#]],
         )