summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hir_expand/reborrow.cpp4
-rw-r--r--src/mir/mir_builder.cpp2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/hir_expand/reborrow.cpp b/src/hir_expand/reborrow.cpp
index cb466f6f..ecf37c64 100644
--- a/src/hir_expand/reborrow.cpp
+++ b/src/hir_expand/reborrow.cpp
@@ -87,6 +87,10 @@ namespace {
return node_ptr;
}
+ void visit(::HIR::ExprNode_Cast& node) override {
+ ::HIR::ExprVisitorDef::visit(node);
+ node.m_value = do_reborrow(mv$(node.m_value));
+ }
void visit(::HIR::ExprNode_Emplace& node) override {
::HIR::ExprVisitorDef::visit(node);
node.m_value = do_reborrow(mv$(node.m_value));
diff --git a/src/mir/mir_builder.cpp b/src/mir/mir_builder.cpp
index a064b67d..8e87c523 100644
--- a/src/mir/mir_builder.cpp
+++ b/src/mir/mir_builder.cpp
@@ -289,7 +289,7 @@ void MirBuilder::push_stmt_assign(const Span& sp, ::MIR::LValue dst, ::MIR::RVal
),
(Cast,
// TODO: Does this actually move?
- if( e.type.m_data.is_Borrow() )
+ //if( !e.type.m_data.is_Borrow() )
{
this->moved_lvalue(sp, e.val);
}