HIR::TuplePatternItemsRanged &ref
= static_cast<HIR::TuplePatternItemsRanged &> (pattern.get_items ());
- // Check whether size of lower and upper patterns <= parent size
const auto &lower = ref.get_lower_patterns ();
const auto &upper = ref.get_upper_patterns ();
size_t min_size_required = lower.size () + upper.size ();
- if (par.get_fields ().size () > min_size_required)
+ // Ensure that size of lower and upper patterns <= parent size
+ if (min_size_required > par.get_fields ().size ())
{
emit_pattern_size_error (pattern, par.get_fields ().size (),
min_size_required);
let (_,) = (1, 2); // { dg-error "expected a tuple with 2 elements, found one with 1 element" }
let (_, _) = (1, 2, 3); // { dg-error "expected a tuple with 3 elements, found one with 2 elements" }
let (_, _) = (1,); // { dg-error "expected a tuple with 1 element, found one with 2 elements" }
+ let (_, .., _) = (1,); // { dg-error "expected a tuple with 1 element, found one with 2 elements" }
}
// The lhs and rhs sizes don't match, but we still resolve 'a' to be bool, we don't