summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-09-01 17:17:21 +0800
committerJohn Hodge <tpg@mutabah.net>2016-09-01 17:17:21 +0800
commit2bd7558bb330433ee1b9db9e94231ddf53442bc6 (patch)
treee55faa3c10dbc4a26b0d0bd73057f4f26da43773 /src
parent5acc77c720f46814a829e2f106db08ad51a820d2 (diff)
downloadmrust-2bd7558bb330433ee1b9db9e94231ddf53442bc6.tar.gz
HIR Const Eval - Extern crate support
Diffstat (limited to 'src')
-rw-r--r--src/hir_conv/constant_evaluation.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/hir_conv/constant_evaluation.cpp b/src/hir_conv/constant_evaluation.cpp
index 7973a77d..0057f42b 100644
--- a/src/hir_conv/constant_evaluation.cpp
+++ b/src/hir_conv/constant_evaluation.cpp
@@ -48,10 +48,15 @@ namespace {
};
const void* get_ent_simplepath(const Span& sp, const ::HIR::Crate& crate, const ::HIR::SimplePath& path, EntType et)
{
- if( path.m_crate_name != "" )
- TODO(sp, "get_ent_simplepath in crate");
+ const ::HIR::Module* mod;
+ if( path.m_crate_name != "" ) {
+ ASSERT_BUG(sp, crate.m_ext_crates.count(path.m_crate_name) > 0, "Crate '" << path.m_crate_name << "' not loaded");
+ mod = &crate.m_ext_crates.at(path.m_crate_name)->m_root_module;
+ }
+ else {
+ mod = &crate.m_root_module;
+ }
- const ::HIR::Module* mod = &crate.m_root_module;
for( unsigned int i = 0; i < path.m_components.size() - 1; i ++ )
{
const auto& pc = path.m_components[i];