Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/tests/flyimport.rs')
-rw-r--r--crates/ide-completion/src/tests/flyimport.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/crates/ide-completion/src/tests/flyimport.rs b/crates/ide-completion/src/tests/flyimport.rs
index 158dbaf1b1..8350fdcc4c 100644
--- a/crates/ide-completion/src/tests/flyimport.rs
+++ b/crates/ide-completion/src/tests/flyimport.rs
@@ -1633,3 +1633,39 @@ fn main() {
"#]],
);
}
+
+#[test]
+fn trait_impl_on_slice_method_on_deref_slice_type() {
+ check(
+ r#"
+//- minicore: deref, sized
+struct SliceDeref;
+impl core::ops::Deref for SliceDeref {
+ type Target = [()];
+
+ fn deref(&self) -> &Self::Target {
+ &[]
+ }
+}
+fn main() {
+ SliceDeref.choose$0();
+}
+mod module {
+ pub(super) trait SliceRandom {
+ type Item;
+
+ fn choose(&self);
+ }
+
+ impl<T> SliceRandom for [T] {
+ type Item = T;
+
+ fn choose(&self) {}
+ }
+}
+"#,
+ expect![[r#"
+ me choose (use module::SliceRandom) fn(&self)
+ "#]],
+ );
+}