Skip to content

Commit 3ca110e

Browse files
Properly parse 'as const'
1 parent 2faf005 commit 3ca110e

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

common/corpus/declarations.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,7 @@ Type casts
457457

458458
foo as any as Array<number>
459459
bar satisfies number[]
460+
"foobar" as const
460461

461462
---
462463

@@ -466,7 +467,11 @@ bar satisfies number[]
466467
(as_expression (identifier) (predefined_type))
467468
(generic_type (type_identifier) (type_arguments (predefined_type)))))
468469
(expression_statement
469-
(satisfies_expression (identifier) (array_type (predefined_type)))))
470+
(satisfies_expression (identifier) (array_type (predefined_type))))
471+
(expression_statement
472+
(as_expression
473+
(string
474+
(string_fragment)))))
470475

471476
=================================
472477
Ambient export function declarations

common/define-grammar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ module.exports = function defineGrammar(dialect) {
438438
as_expression: $ => prec.left('binary', seq(
439439
$.expression,
440440
'as',
441-
$._type
441+
choice('const', $._type)
442442
)),
443443

444444
satisfies_expression: $ => prec.left('binary', seq(

0 commit comments

Comments
 (0)