Skip to content

Commit ff072b8

Browse files
Add support for const type parameters
1 parent bf216b8 commit ff072b8

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

common/corpus/functions.txt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ function foo<T, U>(this: T[]): U[] {
1818
return []
1919
}
2020

21+
function foo<const T, const U extends string>(x: T, y: U) {
22+
23+
}
24+
2125
---
2226

2327
(program
@@ -57,7 +61,20 @@ function foo<T, U>(this: T[]): U[] {
5761
pattern: (this)
5862
type: (type_annotation (array_type (type_identifier)))))
5963
return_type: (type_annotation (array_type (type_identifier)))
60-
body: (statement_block (return_statement (array)))))
64+
body: (statement_block (return_statement (array))))
65+
(function_declaration
66+
name: (identifier)
67+
type_parameters: (type_parameters
68+
(type_parameter name: (type_identifier))
69+
(type_parameter name: (type_identifier) constraint: (constraint (predefined_type))))
70+
parameters: (formal_parameters
71+
(required_parameter
72+
pattern: (identifier)
73+
type: (type_annotation (type_identifier)))
74+
(required_parameter
75+
pattern: (identifier)
76+
type: (type_annotation (type_identifier))))
77+
body: (statement_block)))
6178

6279
==================================
6380
New object with type arguments

common/define-grammar.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -894,6 +894,7 @@ module.exports = function defineGrammar(dialect) {
894894
),
895895

896896
type_parameter: $ => seq(
897+
optional('const'),
897898
field('name', $._type_identifier),
898899
field('constraint', optional($.constraint)),
899900
field('value', optional($.default_type))

0 commit comments

Comments
 (0)