summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hir/deserialise.cpp2
-rw-r--r--src/hir/serialise.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/hir/deserialise.cpp b/src/hir/deserialise.cpp
index c19f8621..ef154318 100644
--- a/src/hir/deserialise.cpp
+++ b/src/hir/deserialise.cpp
@@ -958,7 +958,7 @@ namespace {
});
case 1:
return ::MIR::Statement::make_Drop({
- ::MIR::eDropKind::DEEP,
+ read_bool() ? ::MIR::eDropKind::DEEP : ::MIR::eDropKind::SHALLOW,
deserialise_mir_lvalue()
});
default:
diff --git a/src/hir/serialise.cpp b/src/hir/serialise.cpp
index 850f73a7..1397668f 100644
--- a/src/hir/serialise.cpp
+++ b/src/hir/serialise.cpp
@@ -512,7 +512,8 @@ namespace {
),
(Drop,
write_tag(1);
- assert(e.kind == ::MIR::eDropKind::DEEP);
+ assert(e.kind == ::MIR::eDropKind::DEEP || e.kind == ::MIR::eDropKind::SHALLOW);
+ write_bool(e.kind == ::MIR::eDropKind::DEEP);
serialise(e.slot);
)
)