diff options
Diffstat (limited to 'crates/ide/src')
-rw-r--r-- | crates/ide/src/hover.rs | 20 | ||||
-rw-r--r-- | crates/ide/src/inlay_hints.rs | 4 |
2 files changed, 23 insertions, 1 deletions
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs index 9de653739..04598cd06 100644 --- a/crates/ide/src/hover.rs +++ b/crates/ide/src/hover.rs | |||
@@ -3957,4 +3957,24 @@ mod string { | |||
3957 | "#]], | 3957 | "#]], |
3958 | ) | 3958 | ) |
3959 | } | 3959 | } |
3960 | |||
3961 | #[test] | ||
3962 | fn function_doesnt_shadow_crate_in_use_tree() { | ||
3963 | check( | ||
3964 | r#" | ||
3965 | //- /main.rs crate:main deps:foo | ||
3966 | use foo$0::{foo}; | ||
3967 | |||
3968 | //- /foo.rs crate:foo | ||
3969 | pub fn foo() {} | ||
3970 | "#, | ||
3971 | expect![[r#" | ||
3972 | *foo* | ||
3973 | |||
3974 | ```rust | ||
3975 | extern crate foo | ||
3976 | ``` | ||
3977 | "#]], | ||
3978 | ) | ||
3979 | } | ||
3960 | } | 3980 | } |
diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs index 960d169f4..8f490e922 100644 --- a/crates/ide/src/inlay_hints.rs +++ b/crates/ide/src/inlay_hints.rs | |||
@@ -225,8 +225,10 @@ fn hint_iterator( | |||
225 | } | 225 | } |
226 | let iter_trait = famous_defs.core_iter_Iterator()?; | 226 | let iter_trait = famous_defs.core_iter_Iterator()?; |
227 | let iter_mod = famous_defs.core_iter()?; | 227 | let iter_mod = famous_defs.core_iter()?; |
228 | // assert this struct comes from `core::iter` | 228 | |
229 | // Assert that this struct comes from `core::iter`. | ||
229 | iter_mod.visibility_of(db, &strukt.into()).filter(|&vis| vis == hir::Visibility::Public)?; | 230 | iter_mod.visibility_of(db, &strukt.into()).filter(|&vis| vis == hir::Visibility::Public)?; |
231 | |||
230 | if ty.impls_trait(db, iter_trait, &[]) { | 232 | if ty.impls_trait(db, iter_trait, &[]) { |
231 | let assoc_type_item = iter_trait.items(db).into_iter().find_map(|item| match item { | 233 | let assoc_type_item = iter_trait.items(db).into_iter().find_map(|item| match item { |
232 | hir::AssocItem::TypeAlias(alias) if alias.name(db) == known::Item => Some(alias), | 234 | hir::AssocItem::TypeAlias(alias) if alias.name(db) == known::Item => Some(alias), |