diff options
-rw-r--r-- | src/hir_typeck/expr_cs.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/hir_typeck/expr_cs.cpp b/src/hir_typeck/expr_cs.cpp index 6da7578e..dc790c2d 100644 --- a/src/hir_typeck/expr_cs.cpp +++ b/src/hir_typeck/expr_cs.cpp @@ -2767,6 +2767,10 @@ namespace { node_ptr = ::HIR::ExprNodeP(new ::HIR::ExprNode_UniOp( mv$(span), op, mv$(node_ptr) )); node_ptr->m_res_type = ::HIR::TypeRef::new_borrow(borrow_type, des_borrow_inner.clone()); } + else { + auto borrow_type = context.m_ivars.get_type(node_ptr->m_res_type).m_data.as_Borrow().type; + node_ptr->m_res_type = ::HIR::TypeRef::new_borrow(borrow_type, des_borrow_inner.clone()); + } cb(*node_ptr_ptr); @@ -2947,7 +2951,7 @@ namespace { add_coerce_borrow(context, node_ptr, ty_dst, [&](auto& node_ptr) { auto span = node_ptr->span(); node_ptr = ::HIR::ExprNodeP(new ::HIR::ExprNode_Unsize( mv$(span), mv$(node_ptr), ty_dst.clone() )); - DEBUG("- Deref " << &*node_ptr << " -> " << ty_dst); + DEBUG("- Unsize " << &*node_ptr << " -> " << ty_dst); node_ptr->m_res_type = ty_dst.clone(); }); return true; |