Skip to content

Commit bd352d2

Browse files
committed
fix: allow integer literals in struct field initializers for tuple structs
1 parent e6b6401 commit bd352d2

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

grammar.js

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

11431143
field_initializer: $ => seq(
11441144
repeat($.attribute_item),
1145-
field('name', $._field_identifier),
1145+
field('field', choice($._field_identifier, $.integer_literal)),
11461146
':',
11471147
field('value', $._expression),
11481148
),

test/corpus/expressions.txt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ NothingInMe {};
438438
Point {x: 10.0, y: 20.0};
439439
let a = SomeStruct { field1, field2: expression, field3, };
440440
let u = game::User {name: "Joe", age: 35, score: 100_000};
441+
let i = Instant { 0: Duration::from_millis(0) };
441442

442443
--------------------------------------------------------------------------------
443444

@@ -484,7 +485,20 @@ let u = game::User {name: "Joe", age: 35, score: 100_000};
484485
(integer_literal))
485486
(field_initializer
486487
(field_identifier)
487-
(integer_literal))))))
488+
(integer_literal)))))
489+
(let_declaration
490+
(identifier)
491+
(struct_expression
492+
(type_identifier)
493+
(field_initializer_list
494+
(field_initializer
495+
(integer_literal)
496+
(call_expression
497+
(scoped_identifier
498+
(identifier)
499+
(identifier))
500+
(arguments
501+
(integer_literal))))))))
488502

489503
================================================================================
490504
Struct expressions with update initializers

0 commit comments

Comments
 (0)