summaryrefslogtreecommitdiff
path: root/src/hir
diff options
context:
space:
mode:
Diffstat (limited to 'src/hir')
-rw-r--r--src/hir/hir.cpp8
-rw-r--r--src/hir/hir.hpp4
2 files changed, 6 insertions, 6 deletions
diff --git a/src/hir/hir.cpp b/src/hir/hir.cpp
index 65a87d7a..636ff7a0 100644
--- a/src/hir/hir.cpp
+++ b/src/hir/hir.cpp
@@ -373,12 +373,12 @@ const ::HIR::SimplePath& ::HIR::Crate::get_lang_item_path(const Span& sp, const
return it->second;
}
-const ::HIR::TypeItem& ::HIR::Crate::get_typeitem_by_path(const Span& sp, const ::HIR::SimplePath& path) const
+const ::HIR::TypeItem& ::HIR::Crate::get_typeitem_by_path(const Span& sp, const ::HIR::SimplePath& path, bool ignore_crate_name) const
{
ASSERT_BUG(sp, path.m_components.size() > 0, "get_typeitem_by_path received invalid path - " << path);
const ::HIR::Module* mod;
- if( path.m_crate_name != "" ) {
+ if( !ignore_crate_name && path.m_crate_name != "" ) {
ASSERT_BUG(sp, m_ext_crates.count(path.m_crate_name) > 0, "Crate '" << path.m_crate_name << "' not loaded");
mod = &m_ext_crates.at(path.m_crate_name)->m_root_module;
}
@@ -448,13 +448,13 @@ const ::HIR::Enum& ::HIR::Crate::get_enum_by_path(const Span& sp, const ::HIR::S
}
}
-const ::HIR::ValueItem& ::HIR::Crate::get_valitem_by_path(const Span& sp, const ::HIR::SimplePath& path) const
+const ::HIR::ValueItem& ::HIR::Crate::get_valitem_by_path(const Span& sp, const ::HIR::SimplePath& path, bool ignore_crate_name) const
{
if( path.m_components.size() == 0) {
BUG(sp, "get_valitem_by_path received invalid path");
}
const ::HIR::Module* mod;
- if( path.m_crate_name != "" ) {
+ if( !ignore_crate_name && path.m_crate_name != "" ) {
ASSERT_BUG(sp, m_ext_crates.count(path.m_crate_name) > 0, "Crate '" << path.m_crate_name << "' not loaded");
mod = &m_ext_crates.at(path.m_crate_name)->m_root_module;
}
diff --git a/src/hir/hir.hpp b/src/hir/hir.hpp
index e18f6631..b1f18fcf 100644
--- a/src/hir/hir.hpp
+++ b/src/hir/hir.hpp
@@ -326,13 +326,13 @@ public:
const ::HIR::SimplePath& get_lang_item_path(const Span& sp, const char* name) const;
- const ::HIR::TypeItem& get_typeitem_by_path(const Span& sp, const ::HIR::SimplePath& path) const;
+ const ::HIR::TypeItem& get_typeitem_by_path(const Span& sp, const ::HIR::SimplePath& path, bool ignore_crate_name=false) const;
const ::HIR::Trait& get_trait_by_path(const Span& sp, const ::HIR::SimplePath& path) const;
const ::HIR::Struct& get_struct_by_path(const Span& sp, const ::HIR::SimplePath& path) const;
const ::HIR::Enum& get_enum_by_path(const Span& sp, const ::HIR::SimplePath& path) const;
const ::HIR::Module& get_mod_by_path(const Span& sp, const ::HIR::SimplePath& path) const;
- const ::HIR::ValueItem& get_valitem_by_path(const Span& sp, const ::HIR::SimplePath& path) const;
+ const ::HIR::ValueItem& get_valitem_by_path(const Span& sp, const ::HIR::SimplePath& path, bool ignore_crate_name=false) const;
const ::HIR::Function& get_function_by_path(const Span& sp, const ::HIR::SimplePath& path) const;
const ::HIR::Static& get_static_by_path(const Span& sp, const ::HIR::SimplePath& path) const {
const auto& ti = this->get_valitem_by_path(sp, path);