diff options
Diffstat (limited to 'crates/ra_hir/src/semantics.rs')
-rw-r--r-- | crates/ra_hir/src/semantics.rs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/crates/ra_hir/src/semantics.rs b/crates/ra_hir/src/semantics.rs index 515e5eb17..7c1f79f27 100644 --- a/crates/ra_hir/src/semantics.rs +++ b/crates/ra_hir/src/semantics.rs | |||
@@ -23,7 +23,7 @@ use crate::{ | |||
23 | db::HirDatabase, | 23 | db::HirDatabase, |
24 | diagnostics::Diagnostic, | 24 | diagnostics::Diagnostic, |
25 | semantics::source_to_def::{ChildContainer, SourceToDefCache, SourceToDefCtx}, | 25 | semantics::source_to_def::{ChildContainer, SourceToDefCache, SourceToDefCtx}, |
26 | source_analyzer::{resolve_hir_path, SourceAnalyzer}, | 26 | source_analyzer::{resolve_hir_path, resolve_hir_path_qualifier, SourceAnalyzer}, |
27 | AssocItem, Field, Function, HirFileId, ImplDef, InFile, Local, MacroDef, Module, ModuleDef, | 27 | AssocItem, Field, Function, HirFileId, ImplDef, InFile, Local, MacroDef, Module, ModuleDef, |
28 | Name, Origin, Path, ScopeDef, Trait, Type, TypeAlias, TypeParam, | 28 | Name, Origin, Path, ScopeDef, Trait, Type, TypeAlias, TypeParam, |
29 | }; | 29 | }; |
@@ -451,6 +451,23 @@ impl<'a, DB: HirDatabase> SemanticsScope<'a, DB> { | |||
451 | pub fn resolve_hir_path(&self, path: &Path) -> Option<PathResolution> { | 451 | pub fn resolve_hir_path(&self, path: &Path) -> Option<PathResolution> { |
452 | resolve_hir_path(self.db, &self.resolver, path) | 452 | resolve_hir_path(self.db, &self.resolver, path) |
453 | } | 453 | } |
454 | |||
455 | /// Resolves a path where we know it is a qualifier of another path. | ||
456 | /// | ||
457 | /// For example, if we have: | ||
458 | /// ``` | ||
459 | /// mod my { | ||
460 | /// pub mod foo { | ||
461 | /// struct Bar; | ||
462 | /// } | ||
463 | /// | ||
464 | /// pub fn foo() {} | ||
465 | /// } | ||
466 | /// ``` | ||
467 | /// then we know that `foo` in `my::foo::Bar` refers to the module, not the function. | ||
468 | pub fn resolve_hir_path_qualifier(&self, path: &Path) -> Option<PathResolution> { | ||
469 | resolve_hir_path_qualifier(self.db, &self.resolver, path) | ||
470 | } | ||
454 | } | 471 | } |
455 | 472 | ||
456 | // FIXME: Change `HasSource` trait to work with `Semantics` and remove this? | 473 | // FIXME: Change `HasSource` trait to work with `Semantics` and remove this? |