From 5b0e347f89be317d21fd894c0ccf4abee5645429 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 27 Nov 2018 16:30:02 +0300 Subject: Make resolve_path cancelable --- crates/ra_analysis/src/descriptors/module/mod.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'crates/ra_analysis/src/descriptors/module') diff --git a/crates/ra_analysis/src/descriptors/module/mod.rs b/crates/ra_analysis/src/descriptors/module/mod.rs index a6eaec178..f5238e239 100644 --- a/crates/ra_analysis/src/descriptors/module/mod.rs +++ b/crates/ra_analysis/src/descriptors/module/mod.rs @@ -133,7 +133,15 @@ impl ModuleDescriptor { Ok(res) } - pub(crate) fn resolve_path(&self, path: Path) -> Option { + pub(crate) fn resolve_path(&self, path: Path) -> Cancelable> { + let res = match self.do_resolve_path(path) { + None => return Ok(None), + Some(it) => it, + }; + Ok(Some(res)) + } + + fn do_resolve_path(&self, path: Path) -> Option { let mut curr = match path.kind { PathKind::Crate => self.crate_root(), PathKind::Self_ | PathKind::Plain => self.clone(), -- cgit v1.2.3