diff options
Diffstat (limited to 'src/expand/derive.cpp')
-rw-r--r-- | src/expand/derive.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/expand/derive.cpp b/src/expand/derive.cpp index 983ab8c0..2b7e5dab 100644 --- a/src/expand/derive.cpp +++ b/src/expand/derive.cpp @@ -1775,7 +1775,7 @@ public: auto name_a = Ident( FMT("a" << fld.m_name) ); pats_a.push_back( ::std::make_pair(fld.m_name, ::AST::Pattern(::AST::Pattern::TagBind(), Ident(name_a), ::AST::PatternBinding::Type::REF)) ); - nodes.push_back( NEWNODE(CallPath, this->get_trait_path_Encoder() + "emit_struct_variant_field", + nodes.push_back( NEWNODE(CallPath, this->get_trait_path_Encoder() + "emit_enum_struct_variant_field", vec$( NEWNODE(NamedValue, AST::Path("s")), NEWNODE(String, fld.m_name), @@ -1985,7 +1985,7 @@ public: { auto name_a = FMT("a" << fld.m_name); - vals.push_back(::std::make_pair(fld.m_name, NEWNODE(UniOp, ::AST::ExprNode_UniOp::QMARK, NEWNODE(CallPath, this->get_trait_path_Decoder() + "read_struct_variant_field", + vals.push_back(::std::make_pair(fld.m_name, NEWNODE(UniOp, ::AST::ExprNode_UniOp::QMARK, NEWNODE(CallPath, this->get_trait_path_Decoder() + "read_enum_struct_variant_field", vec$( NEWNODE(NamedValue, AST::Path("d")), NEWNODE(String, fld.m_name), @@ -2006,12 +2006,12 @@ public: arms.push_back(AST::ExprNode_Match_Arm( mv$(pats), nullptr, - mv$(code) + this->get_val_ok(core_name, mv$(code)) )); var_name_strs.push_back( NEWNODE(String, v.m_name) ); } - auto node_match = NEWNODE(Match, NEWNODE(NamedValue, AST::Path("self")), mv$(arms)); + auto node_match = NEWNODE(Match, NEWNODE(NamedValue, AST::Path("idx")), mv$(arms)); auto node_var_closure = NEWNODE(Closure, vec$( ::std::make_pair( AST::Pattern(AST::Pattern::TagBind(), "d"), ::TypeRef(sp) ), |