Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/inlay_hints/chaining.rs')
-rw-r--r--crates/ide/src/inlay_hints/chaining.rs301
1 files changed, 173 insertions, 128 deletions
diff --git a/crates/ide/src/inlay_hints/chaining.rs b/crates/ide/src/inlay_hints/chaining.rs
index 7fa7ab1a94..8471547727 100644
--- a/crates/ide/src/inlay_hints/chaining.rs
+++ b/crates/ide/src/inlay_hints/chaining.rs
@@ -81,7 +81,10 @@ mod tests {
use crate::{
fixture,
- inlay_hints::tests::{check_expect, check_with_config, DISABLED_CONFIG, TEST_CONFIG},
+ inlay_hints::{
+ tests::{check_expect, check_with_config, DISABLED_CONFIG, TEST_CONFIG},
+ LazyProperty,
+ },
InlayHintsConfig,
};
@@ -99,7 +102,7 @@ mod tests {
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 {
+ if let Some(LazyProperty::Computed(loc)) = &mut hint.linked_location {
loc.range = TextRange::empty(TextSize::from(0));
}
});
@@ -134,12 +137,14 @@ fn main() {
InlayHintLabelPart {
text: "B",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 63..64,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 63..64,
+ },
+ ),
),
tooltip: "",
},
@@ -151,12 +156,14 @@ fn main() {
InlayHintLabelPart {
text: "A",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 7..8,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 7..8,
+ },
+ ),
),
tooltip: "",
},
@@ -213,12 +220,14 @@ fn main() {
InlayHintLabelPart {
text: "C",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 51..52,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 51..52,
+ },
+ ),
),
tooltip: "",
},
@@ -230,12 +239,14 @@ fn main() {
InlayHintLabelPart {
text: "B",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 29..30,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 29..30,
+ },
+ ),
),
tooltip: "",
},
@@ -276,12 +287,14 @@ fn main() {
InlayHintLabelPart {
text: "C",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 51..52,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 51..52,
+ },
+ ),
),
tooltip: "",
},
@@ -293,12 +306,14 @@ fn main() {
InlayHintLabelPart {
text: "B",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 29..30,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 29..30,
+ },
+ ),
),
tooltip: "",
},
@@ -340,12 +355,14 @@ fn main() {
InlayHintLabelPart {
text: "B",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 23..24,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 23..24,
+ },
+ ),
),
tooltip: "",
},
@@ -353,12 +370,14 @@ fn main() {
InlayHintLabelPart {
text: "X",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 55..56,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 55..56,
+ },
+ ),
),
tooltip: "",
},
@@ -371,12 +390,14 @@ fn main() {
InlayHintLabelPart {
text: "A",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 7..8,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 7..8,
+ },
+ ),
),
tooltip: "",
},
@@ -384,12 +405,14 @@ fn main() {
InlayHintLabelPart {
text: "X",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 55..56,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 55..56,
+ },
+ ),
),
tooltip: "",
},
@@ -435,12 +458,14 @@ fn main() {
InlayHintLabelPart {
text: "Iterator",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 1,
- ),
- range: 0..0,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 1,
+ ),
+ range: 0..0,
+ },
+ ),
),
tooltip: "",
},
@@ -448,12 +473,14 @@ fn main() {
InlayHintLabelPart {
text: "Item",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 1,
- ),
- range: 0..0,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 1,
+ ),
+ range: 0..0,
+ },
+ ),
),
tooltip: "",
},
@@ -467,12 +494,14 @@ fn main() {
InlayHintLabelPart {
text: "Iterator",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 1,
- ),
- range: 0..0,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 1,
+ ),
+ range: 0..0,
+ },
+ ),
),
tooltip: "",
},
@@ -480,12 +509,14 @@ fn main() {
InlayHintLabelPart {
text: "Item",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 1,
- ),
- range: 0..0,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 1,
+ ),
+ range: 0..0,
+ },
+ ),
),
tooltip: "",
},
@@ -499,12 +530,14 @@ fn main() {
InlayHintLabelPart {
text: "Iterator",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 1,
- ),
- range: 0..0,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 1,
+ ),
+ range: 0..0,
+ },
+ ),
),
tooltip: "",
},
@@ -512,12 +545,14 @@ fn main() {
InlayHintLabelPart {
text: "Item",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 1,
- ),
- range: 0..0,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 1,
+ ),
+ range: 0..0,
+ },
+ ),
),
tooltip: "",
},
@@ -531,12 +566,14 @@ fn main() {
InlayHintLabelPart {
text: "MyIter",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 0..0,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 0..0,
+ },
+ ),
),
tooltip: "",
},
@@ -577,12 +614,14 @@ fn main() {
InlayHintLabelPart {
text: "Struct",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 7..13,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 7..13,
+ },
+ ),
),
tooltip: "",
},
@@ -594,12 +633,14 @@ fn main() {
InlayHintLabelPart {
text: "Struct",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 7..13,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 7..13,
+ },
+ ),
),
tooltip: "",
},
@@ -611,12 +652,14 @@ fn main() {
InlayHintLabelPart {
text: "Struct",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 7..13,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 7..13,
+ },
+ ),
),
tooltip: "",
},
@@ -628,12 +671,14 @@ fn main() {
InlayHintLabelPart {
text: "self",
linked_location: Some(
- FileRangeWrapper {
- file_id: FileId(
- 0,
- ),
- range: 42..46,
- },
+ Computed(
+ FileRangeWrapper {
+ file_id: FileId(
+ 0,
+ ),
+ range: 42..46,
+ },
+ ),
),
tooltip: "",
},