summaryrefslogtreecommitdiff
path: root/src/hir/serialise.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hir/serialise.cpp')
-rw-r--r--src/hir/serialise.cpp78
1 files changed, 39 insertions, 39 deletions
diff --git a/src/hir/serialise.cpp b/src/hir/serialise.cpp
index 0acd95ea..0dfb9b01 100644
--- a/src/hir/serialise.cpp
+++ b/src/hir/serialise.cpp
@@ -20,7 +20,7 @@ namespace {
HirSerialiser(::HIR::serialise::Writer& out):
m_out( out )
{}
-
+
template<typename V>
void serialise_strmap(const ::std::map< ::std::string,V>& map)
{
@@ -77,7 +77,7 @@ namespace {
m_out.write_count(e.first);
serialise(e.second);
}
-
+
void serialise_type(const ::HIR::TypeRef& ty)
{
m_out.write_tag( ty.m_data.tag() );
@@ -107,7 +107,7 @@ namespace {
(ErasedType,
serialise_path(e.m_origin);
m_out.write_count(e.m_index);
-
+
m_out.write_count(e.m_traits.size());
for(const auto& t : e.m_traits)
serialise_traitpath(t);
@@ -233,12 +233,12 @@ namespace {
)
)
}
-
-
+
+
void serialise_crate(const ::HIR::Crate& crate)
{
serialise_module(crate.m_root_module);
-
+
m_out.write_count(crate.m_type_impls.size());
for(const auto& impl : crate.m_type_impls) {
serialise_typeimpl(impl);
@@ -253,10 +253,10 @@ namespace {
serialise_simplepath(tr_impl.first);
serialise_markerimpl(tr_impl.second);
}
-
+
serialise_strmap(crate.m_exported_macros);
serialise_strmap(crate.m_lang_items);
-
+
m_out.write_count(crate.m_ext_crates.size());
for(const auto& ext : crate.m_ext_crates)
m_out.write_string(ext.first);
@@ -264,9 +264,9 @@ namespace {
void serialise_module(const ::HIR::Module& mod)
{
TRACE_FUNCTION;
-
+
// m_traits doesn't need to be serialised
-
+
serialise_strmap(mod.m_value_items);
serialise_strmap(mod.m_mod_items);
}
@@ -275,7 +275,7 @@ namespace {
TRACE_FUNCTION_F("impl" << impl.m_params.fmt_args() << " " << impl.m_type);
serialise_generics(impl.m_params);
serialise_type(impl.m_type);
-
+
m_out.write_count(impl.m_methods.size());
for(const auto& v : impl.m_methods) {
m_out.write_string(v.first);
@@ -298,7 +298,7 @@ namespace {
serialise_generics(impl.m_params);
serialise_pathparams(impl.m_trait_args);
serialise_type(impl.m_type);
-
+
m_out.write_count(impl.m_methods.size());
for(const auto& v : impl.m_methods) {
DEBUG("fn " << v.first);
@@ -336,7 +336,7 @@ namespace {
m_out.write_bool(impl.is_positive);
serialise_type(impl.m_type);
}
-
+
void serialise(const ::HIR::TypeRef& ty) {
serialise_type(ty);
}
@@ -408,10 +408,10 @@ namespace {
Serialiser_TextTree ser(tmp);
tok.serialise( ser );
}
-
+
m_out.write_string(tmp.str());
}
-
+
void serialise(const ::HIR::Literal& lit)
{
m_out.write_tag(lit.tag());
@@ -440,7 +440,7 @@ namespace {
)
)
}
-
+
void serialise(const ::HIR::ExprPtr& exp)
{
m_out.write_bool( (bool)exp.m_mir );
@@ -659,7 +659,7 @@ namespace {
)
)
}
-
+
void serialise(const ::HIR::TypeItem& item)
{
TU_MATCHA( (item), (e),
@@ -726,27 +726,27 @@ namespace {
)
)
}
-
+
void serialise(unsigned int v) { m_out.write_count(v); };
-
+
void serialise(const ::HIR::Linkage& linkage)
{
//m_out.write_tag( static_cast<int>(linkage.type) );
m_out.write_string( linkage.name );
}
-
+
// - Value items
void serialise(const ::HIR::Function& fcn)
{
TRACE_FUNCTION_F("_function:");
-
+
serialise(fcn.m_linkage);
-
+
m_out.write_tag( static_cast<int>(fcn.m_receiver) );
m_out.write_string(fcn.m_abi);
m_out.write_bool(fcn.m_unsafe);
m_out.write_bool(fcn.m_const);
-
+
serialise_generics(fcn.m_params);
m_out.write_count(fcn.m_args.size());
for(const auto& a : fcn.m_args)
@@ -754,13 +754,13 @@ namespace {
m_out.write_bool(fcn.m_variadic);
serialise(fcn.m_return);
DEBUG("m_args = " << fcn.m_args);
-
+
serialise(fcn.m_code);
}
void serialise(const ::HIR::Constant& item)
{
TRACE_FUNCTION_F("_constant:");
-
+
serialise_generics(item.m_params);
serialise(item.m_type);
serialise(item.m_value);
@@ -769,15 +769,15 @@ namespace {
void serialise(const ::HIR::Static& item)
{
TRACE_FUNCTION_F("_static:");
-
+
serialise(item.m_linkage);
-
+
m_out.write_bool(item.m_is_mut);
serialise(item.m_type);
-
+
serialise(item.m_value_res);
}
-
+
// - Type items
void serialise(const ::HIR::TypeAlias& ta)
{
@@ -788,9 +788,9 @@ namespace {
{
serialise_generics(item.m_params);
m_out.write_tag( static_cast<int>(item.m_repr) );
-
+
serialise_vec( item.m_variants );
-
+
serialise(item.m_markings);
}
void serialise(const ::HIR::Enum::Variant& v)
@@ -811,7 +811,7 @@ namespace {
)
)
}
-
+
void serialise(const ::HIR::TraitMarkings& m)
{
uint8_t bitflag_1 = 0;
@@ -822,7 +822,7 @@ namespace {
BIT(3, m.has_drop_impl)
#undef BIT
m_out.write_u8(bitflag_1);
-
+
m_out.write_tag( static_cast<unsigned int>(m.dst_type) );
m_out.write_count( m.coerce_unsized_index );
m_out.write_count( m.unsized_field );
@@ -832,10 +832,10 @@ namespace {
void serialise(const ::HIR::Struct& item)
{
TRACE_FUNCTION_F("Struct");
-
+
serialise_generics(item.m_params);
m_out.write_tag( static_cast<int>(item.m_repr) );
-
+
m_out.write_tag( item.m_data.tag() );
TU_MATCHA( (item.m_data), (e),
(Unit,
@@ -847,18 +847,18 @@ namespace {
serialise_vec(e);
)
)
-
+
serialise(item.m_markings);
}
void serialise(const ::HIR::Union& item)
{
TRACE_FUNCTION_F("Union");
-
+
serialise_generics(item.m_params);
m_out.write_tag( static_cast<int>(item.m_repr) );
-
+
serialise_vec(item.m_variants);
-
+
serialise(item.m_markings);
}
void serialise(const ::HIR::Trait& item)