Skip to content

Commit 309fd25

Browse files
committed
Fix generic type spread
1 parent c03220f commit 309fd25

File tree

2 files changed

+29
-13
lines changed

2 files changed

+29
-13
lines changed

grammar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ module.exports = grammar({
386386
),
387387

388388
record_type_field: $ => choice(
389-
seq('...', choice($.type_identifier, $.type_identifier_path)),
389+
seq('...', choice($.type_identifier, $.generic_type, $.type_identifier_path)),
390390
seq(
391391
optional('mutable'),
392392
alias($.value_identifier, $.property_identifier),

test/corpus/type_declarations.txt

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ type t = {}
108108

109109
type t = {
110110
...a,
111-
...b,
111+
...b<t>,
112+
...Mod.t<t>,
113+
...Mod.t,
112114
other: int,
113115
}
114116

@@ -155,17 +157,31 @@ type t = {
155157
(type_identifier)
156158
(record_type)))
157159
(type_declaration
158-
(type_binding
159-
(type_identifier)
160-
(record_type
161-
(record_type_field
162-
(type_identifier))
163-
(record_type_field
164-
(type_identifier))
165-
(record_type_field
166-
(property_identifier)
167-
(type_annotation
168-
(type_identifier)))))))
160+
(type_binding
161+
(type_identifier)
162+
(record_type
163+
(record_type_field
164+
(type_identifier))
165+
(record_type_field
166+
(generic_type
167+
(type_identifier)
168+
(type_arguments
169+
(type_identifier))))
170+
(record_type_field
171+
(generic_type
172+
(type_identifier_path
173+
(module_identifier)
174+
(type_identifier))
175+
(type_arguments
176+
(type_identifier))))
177+
(record_type_field
178+
(type_identifier_path
179+
(module_identifier)
180+
(type_identifier)))
181+
(record_type_field
182+
(property_identifier)
183+
(type_annotation
184+
(type_identifier)))))))
169185

170186
================================================================================
171187
Extensible Variant

0 commit comments

Comments
 (0)