diff --git a/grammar.js b/grammar.js index 1907a3a3..4de1b6ee 100644 --- a/grammar.js +++ b/grammar.js @@ -1310,6 +1310,7 @@ module.exports = grammar({ $._pattern, $.parameter, )), + optional(','), '|', ), diff --git a/test/corpus/expressions.txt b/test/corpus/expressions.txt index 1668704a..be5a0bdc 100644 --- a/test/corpus/expressions.txt +++ b/test/corpus/expressions.txt @@ -1258,7 +1258,7 @@ h(|| -> i { j }); (identifier))))))) ================================================================================ -Closures with typed parameteres +Closures with typed parameters ================================================================================ a.map(|b: usize| b.push(c)); @@ -1284,6 +1284,35 @@ a.map(|b: usize| b.push(c)); (arguments (identifier)))))))) + +================================================================================ +Closure parameters can have a trailing comma +================================================================================ + +a.map(|b: usize,| b.push(c)); + +-------------------------------------------------------------------------------- + +(source_file + (expression_statement + (call_expression + (field_expression + (identifier) + (field_identifier)) + (arguments + (closure_expression + (closure_parameters + (parameter + (identifier) + (primitive_type))) + (call_expression + (field_expression + (identifier) + (field_identifier)) + (arguments + (identifier)))))))) + + ================================================================================ Generators ================================================================================