diff options
-rw-r--r-- | src/hir/deserialise.cpp | 2 | ||||
-rw-r--r-- | src/hir/serialise.cpp | 3 |
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); ) ) |