switch (field->get_item_type ())
{
case AST::StructPatternField::ItemType::TUPLE_PAT: {
- // TODO
- rust_unreachable ();
+ AST::StructPatternFieldTuplePat &tuple
+ = static_cast<AST::StructPatternFieldTuplePat &> (*field);
+
+ auto crate_num = mappings->get_current_crate ();
+ Analysis::NodeMapping mapping (crate_num, tuple.get_node_id (),
+ mappings->get_next_hir_id (
+ crate_num),
+ UNKNOWN_LOCAL_DEFID);
+
+ std::unique_ptr<HIR::Pattern> pat (ASTLoweringPattern::translate (
+ tuple.get_index_pattern ().get ()));
+
+ f = new HIR::StructPatternFieldTuplePat (mapping,
+ tuple.get_index (),
+ std::move (pat),
+ tuple.get_outer_attrs (),
+ tuple.get_locus ());
}
break;
switch (field->get_item_type ())
{
case AST::StructPatternField::ItemType::TUPLE_PAT: {
- // TODO
- rust_unreachable ();
+ AST::StructPatternFieldTuplePat &tuple
+ = static_cast<AST::StructPatternFieldTuplePat &> (*field);
+
+ tuple.get_index_pattern ()->accept_vis (*this);
}
break;
break;
}
}
-
- // TODO
- rust_assert (!struct_pattern_elems.has_etc ());
}
void