Skip to content

Commit df909f3

Browse files
authored
Merge pull request #223 from aspeddro/fix-functor
Fix functor
2 parents 6c4438c + c5e0e37 commit df909f3

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

grammar.js

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

226226
functor_parameter: $ => seq(
227227
$.module_identifier,
228-
$.module_type_annotation,
228+
optional($.module_type_annotation),
229229
),
230230

231231
module_type_annotation: $ => seq(

test/corpus/modules.txt

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,10 @@ module MyFunctor = (X: {type t}, Y: {type t}): {type tx; type ty} => {
330330
type ty = Y.t
331331
}
332332

333+
module F2: (S1, S1) => T = (X: S, Y: S) => {
334+
let cow = x => Y.foo(X.foo(x))
335+
}
336+
333337
--------------------------------------------------------------------------------
334338

335339
(source_file
@@ -372,7 +376,44 @@ module MyFunctor = (X: {type t}, Y: {type t}): {type tx; type ty} => {
372376
name: (type_identifier)
373377
(type_identifier_path
374378
(module_identifier)
375-
(type_identifier)))))))))
379+
(type_identifier))))))))
380+
(module_declaration
381+
(module_binding
382+
name: (module_identifier)
383+
signature: (functor
384+
parameters: (functor_parameters
385+
(functor_parameter
386+
(module_identifier))
387+
(functor_parameter
388+
(module_identifier)))
389+
body: (module_identifier))
390+
definition: (functor
391+
parameters: (functor_parameters
392+
(functor_parameter
393+
(module_identifier)
394+
(module_type_annotation
395+
(module_identifier)))
396+
(functor_parameter
397+
(module_identifier)
398+
(module_type_annotation
399+
(module_identifier))))
400+
body: (block
401+
(let_declaration
402+
(let_binding
403+
pattern: (value_identifier)
404+
body: (function
405+
parameter: (value_identifier)
406+
body: (call_expression
407+
function: (value_identifier_path
408+
(module_identifier)
409+
(value_identifier))
410+
arguments: (arguments
411+
(call_expression
412+
function: (value_identifier_path
413+
(module_identifier)
414+
(value_identifier))
415+
arguments: (arguments
416+
(value_identifier)))))))))))))
376417

377418
================================================================================
378419
Functor signature

0 commit comments

Comments
 (0)