diff options
| author | John Hodge <tpg@mutabah.net> | 2016-08-29 16:47:26 +0800 |
|---|---|---|
| committer | John Hodge <tpg@mutabah.net> | 2016-08-29 16:47:26 +0800 |
| commit | 52370f0a5abacb892b6a7bc24df9c1d232269b4c (patch) | |
| tree | 7ac34fed7ad08a0cd9617ac18877d0b3d661ab82 /src/hir/deserialise.cpp | |
| parent | bcbabdf4ef468bc7a45732354e32b1baf5d95eee (diff) | |
| download | mrust-52370f0a5abacb892b6a7bc24df9c1d232269b4c.tar.gz | |
HIR Deserialise - Hackily set crate names, clean up a little
Diffstat (limited to 'src/hir/deserialise.cpp')
| -rw-r--r-- | src/hir/deserialise.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/hir/deserialise.cpp b/src/hir/deserialise.cpp index 40a98154..e0b12f92 100644 --- a/src/hir/deserialise.cpp +++ b/src/hir/deserialise.cpp @@ -20,10 +20,11 @@ namespace { class HirDeserialiser { - + const ::std::string& m_crate_name; ::std::istream& m_is; public: - HirDeserialiser(::std::istream& is): + HirDeserialiser(const ::std::string& crate_name, ::std::istream& is): + m_crate_name( crate_name ), m_is(is) {} @@ -731,8 +732,12 @@ namespace { ::HIR::SimplePath HirDeserialiser::deserialise_simplepath() { TRACE_FUNCTION; + // HACK! If the read crate name is empty, replace it with the name we're loaded with + auto crate_name = read_string(); + if( crate_name == "" ) + crate_name = m_crate_name; return ::HIR::SimplePath { - read_string(), + mv$(crate_name), deserialise_vec< ::std::string>() }; } @@ -1039,10 +1044,10 @@ namespace { } } -::HIR::CratePtr HIR_Deserialise(const ::std::string& filename) +::HIR::CratePtr HIR_Deserialise(const ::std::string& filename, const ::std::string& loaded_name) { ::std::ifstream in(filename); - HirDeserialiser s { in }; + HirDeserialiser s { loaded_name, in }; try { |
