Skip to content

Commit 4d5b4e6

Browse files
committed
support generic and polymorphic types in coercion expressions
- Allow coercion expressions to use generic and polymorphic types as the right-hand side - Update grammar to permit generic_type and polymorphic_type in relevant contexts - Add test cases for coercion with generic types Close #250
1 parent 6254b2a commit 4d5b4e6

5 files changed

Lines changed: 211647 additions & 143701 deletions

File tree

grammar.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ module.exports = grammar({
117117
[$._type, $._non_function_inline_type],
118118
[$._module_structure, $.parenthesized_module_expression],
119119
[$._record_type_member, $._object_type_member],
120+
[$._non_function_inline_type, $.generic_type],
121+
[$._type_identifier, $.polymorphic_type]
120122
],
121123

122124
rules: {
@@ -1053,7 +1055,7 @@ module.exports = grammar({
10531055
seq(
10541056
field("left", $.expression),
10551057
field("operator", ":>"),
1056-
field("right", $._type_identifier),
1058+
field("right", $._type),
10571059
),
10581060
),
10591061

src/grammar.json

Lines changed: 9 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/node-types.json

Lines changed: 1 addition & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)