A generic body cannot construct or consume a row remainder
Gap
Resolved. RFC-0178 specifies ..name as an owned remainder binding in a record
pattern, and ..expr as an owned row spread in a record literal. The type rules remove
named labels from the strongest entailed decomposition, distinguish missing presence from
an undetermined remainder, and define the empty remainder as {}. Bare .. remains
discard-only; multiple spreads are outside the feature.
The implemented forms support that transition by matching the owned record with
{ token, ..rest } and spreading rest into the result record.
The syntax and behavior are specified in
reference/spec/expressions.md#record-rest-patterns and
reference/spec/types.md#spec.types.generics.open-rows.legality-4.
Impact
No remaining spec gap. The compiler implementation and integration fixtures are tracked by metel-core#1399.
Affects
spec.types.generics.open-rows.legality-2spec.expressions.record-rest-patterns.legality-1spec.types.generics.open-rows.legality-4RFC-0178
Resolution
Resolved by RFC-0178's specification and implementation in
reference/spec/expressions.md#record-rest-patterns,
reference/spec/types.md#open-rows, and metel-core#1399.