diff options
-rw-r--r-- | src/expand/derive.cpp | 8 | ||||
-rw-r--r-- | src/mir/cleanup.cpp | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/expand/derive.cpp b/src/expand/derive.cpp index 46457784..972ee442 100644 --- a/src/expand/derive.cpp +++ b/src/expand/derive.cpp @@ -311,12 +311,12 @@ public: mv$(node), AST::PathNode("field",{}), vec$( NEWNODE(String, fld.m_name), - NEWNODE(UniOp, AST::ExprNode_UniOp::REF, + NEWNODE(UniOp, AST::ExprNode_UniOp::REF, NEWNODE(UniOp, AST::ExprNode_UniOp::REF, NEWNODE(Field, NEWNODE(NamedValue, AST::Path("self")), fld.m_name ) - ) + )) ) ); } @@ -333,12 +333,12 @@ public: node = NEWNODE(CallMethod, mv$(node), AST::PathNode("field",{}), vec$( - NEWNODE(UniOp, AST::ExprNode_UniOp::REF, + NEWNODE(UniOp, AST::ExprNode_UniOp::REF, NEWNODE(UniOp, AST::ExprNode_UniOp::REF, NEWNODE(Field, NEWNODE(NamedValue, AST::Path("self")), FMT(idx) ) - ) + )) ) ); } diff --git a/src/mir/cleanup.cpp b/src/mir/cleanup.cpp index 5c15c1a0..8a5ee1dc 100644 --- a/src/mir/cleanup.cpp +++ b/src/mir/cleanup.cpp @@ -603,6 +603,8 @@ bool MIR_Cleanup_Unsize_GetMetadata(const ::MIR::TypeResolve& state, MirMutator& } else { + MIR_ASSERT(state, state.m_resolve.type_is_sized(state.sp, src_ty), "Attempting to get vtable for unsized type - " << src_ty); + ::HIR::Path vtable { src_ty.clone(), trait_path.m_path.clone(), "#vtable" }; out_meta_val = ::MIR::RValue( ::MIR::Constant::make_ItemAddr(mv$(vtable)) ); } |