From 2bd7558bb330433ee1b9db9e94231ddf53442bc6 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Thu, 1 Sep 2016 17:17:21 +0800 Subject: HIR Const Eval - Extern crate support --- src/hir_conv/constant_evaluation.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/hir_conv/constant_evaluation.cpp') 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]; -- cgit v1.2.3