From ea65072638924847a61981f058d1f02af9fbe31d Mon Sep 17 00:00:00 2001 From: John Hodge Date: Thu, 1 Sep 2016 14:41:52 +0800 Subject: HIR Conv - Fix case where crate name was ignored --- src/hir_conv/bind.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/hir_conv/bind.cpp b/src/hir_conv/bind.cpp index c6e8fa5d..e296cead 100644 --- a/src/hir_conv/bind.cpp +++ b/src/hir_conv/bind.cpp @@ -144,8 +144,15 @@ namespace { TU_IFLET( ::HIR::Pattern::Value, val, Named, ve, TU_IFLET( ::HIR::Path::Data, ve.path.m_data, Generic, pe, const ::HIR::Enum* enm = nullptr; - const ::HIR::Module* mod = &m_crate.m_root_module; const auto& path = pe.m_path; + const ::HIR::Module* mod; + if( path.m_crate_name != "" ) { + ASSERT_BUG(sp, m_crate.m_ext_crates.count(path.m_crate_name) > 0, "Crate '" << path.m_crate_name << "' not loaded"); + mod = &m_crate.m_ext_crates.at(path.m_crate_name)->m_root_module; + } + else { + mod = &m_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