diff options
author | John Hodge <tpg@mutabah.net> | 2016-08-26 15:46:21 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-08-26 15:46:21 +0800 |
commit | 83d6381873a22ce8395721199b068b96e059af20 (patch) | |
tree | 16cae88460348fe8ed142ce13da7385d048fcad8 /src/hir/serialise.cpp | |
parent | c7b6302d5ced1544ce70b054a76efe9da785937e (diff) | |
download | mrust-83d6381873a22ce8395721199b068b96e059af20.tar.gz |
HIR Serialise - Literals
Diffstat (limited to 'src/hir/serialise.cpp')
-rw-r--r-- | src/hir/serialise.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/hir/serialise.cpp b/src/hir/serialise.cpp index fc157704..75375265 100644 --- a/src/hir/serialise.cpp +++ b/src/hir/serialise.cpp @@ -469,6 +469,31 @@ namespace { write_string(tmp.str()); } + void serialise(const ::HIR::Literal& lit) + { + write_tag(lit.tag()); + TU_MATCHA( (lit), (e), + (Invalid, + BUG(Span(), "Literal::Invalid in HIR"); + ), + (List, + serialise_vec(e); + ), + (Integer, + write_u64(e); + ), + (Float, + write_double(e); + ), + (BorrowOf, + serialise_simplepath(e); + ), + (String, + write_string(e); + ) + ) + } + void serialise(const ::HIR::ExprPtr& exp) { if( exp.m_mir ) { @@ -766,7 +791,8 @@ namespace { (Unit, ), (Value, - // TODO: Should be fully known now + // NOTE: e.expr skipped as it's not needed anymore + serialise(e.val); ), (Tuple, serialise_vec(e); |