From 783af171f74d95b498662e5168c3ba320cca8553 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 7 Oct 2020 13:14:12 +0200 Subject: Clean up inlay_hints --- crates/assists/src/utils.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'crates/assists/src') diff --git a/crates/assists/src/utils.rs b/crates/assists/src/utils.rs index c074b8d02..c1847f601 100644 --- a/crates/assists/src/utils.rs +++ b/crates/assists/src/utils.rs @@ -3,7 +3,7 @@ pub(crate) mod insert_use; use std::{iter, ops}; -use hir::{Adt, Crate, Enum, ScopeDef, Semantics, Trait, Type}; +use hir::{Adt, Crate, Enum, Module, ScopeDef, Semantics, Trait, Type}; use ide_db::RootDatabase; use itertools::Itertools; use rustc_hash::FxHashSet; @@ -373,6 +373,10 @@ pub use prelude::*; self.find_trait("core:iter:traits:iterator:Iterator") } + pub fn core_iter(&self) -> Option { + self.find_module("core:iter") + } + fn find_trait(&self, path: &str) -> Option { match self.find_def(path)? { hir::ScopeDef::ModuleDef(hir::ModuleDef::Trait(it)) => Some(it), @@ -387,6 +391,13 @@ pub use prelude::*; } } + fn find_module(&self, path: &str) -> Option { + match self.find_def(path)? { + hir::ScopeDef::ModuleDef(hir::ModuleDef::Module(it)) => Some(it), + _ => None, + } + } + fn find_def(&self, path: &str) -> Option { let db = self.0.db; let mut path = path.split(':'); -- cgit v1.2.3