Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /