Skip to content

Commit 70cd60b

Browse files
committed
mark function curry kind in value mismatch
1 parent 66a0601 commit 70cd60b

6 files changed

+27
-41
lines changed

jscomp/build_tests/super_errors/expected/curried_value_instead_of_uncurried_in_curried_mode.res.expected

+3-10
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,11 @@
1010
6 │
1111

1212
Signature mismatch:
13-
Modules do not match:
14-
{
15-
let add: (int, int) => int
16-
}
17-
is not included in
18-
{
19-
let add: (. int, int) => int
20-
}
13+
...
2114
Values do not match:
22-
let add: (int, int) => int
15+
let add: (int, int) => int (curried)
2316
is not included in
24-
let add: (. int, int) => int
17+
let add: (. int, int) => int (uncurried)
2518
/.../fixtures/curried_value_instead_of_uncurried_in_curried_mode.res:2:3-30:
2619
Expected declaration
2720
/.../fixtures/curried_value_instead_of_uncurried_in_curried_mode.res:4:7-9:

jscomp/build_tests/super_errors/expected/curried_value_instead_of_uncurried_in_uncurried_mode.res.expected

+3-10
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,11 @@
1111
9 │
1212

1313
Signature mismatch:
14-
Modules do not match:
15-
{
16-
let add: (. int, int) => int
17-
}
18-
is not included in
19-
{
20-
let add: (int, int) => int
21-
}
14+
...
2215
Values do not match:
23-
let add: (. int, int) => int
16+
let add: (int, int) => int (curried)
2417
is not included in
25-
let add: (int, int) => int
18+
let add: (int, int) => int (uncurried)
2619
/.../fixtures/curried_value_instead_of_uncurried_in_uncurried_mode.res:4:3-28:
2720
Expected declaration
2821
/.../fixtures/curried_value_instead_of_uncurried_in_uncurried_mode.res:7:7-9:

jscomp/build_tests/super_errors/expected/uncurried_value_instead_of_curried_in_curried_mode.res.expected

+3-10
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,11 @@
1010
6 │
1111

1212
Signature mismatch:
13-
Modules do not match:
14-
{
15-
let add: (. int, int) => int
16-
}
17-
is not included in
18-
{
19-
let add: (int, int) => int
20-
}
13+
...
2114
Values do not match:
22-
let add: (. int, int) => int
15+
let add: (. int, int) => int (uncurried)
2316
is not included in
24-
let add: (int, int) => int
17+
let add: (int, int) => int (curried)
2518
/.../fixtures/uncurried_value_instead_of_curried_in_curried_mode.res:2:3-28:
2619
Expected declaration
2720
/.../fixtures/uncurried_value_instead_of_curried_in_curried_mode.res:4:7-9:

jscomp/build_tests/super_errors/expected/uncurried_value_instead_of_curried_in_uncurried_mode.res.expected

+3-10
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,11 @@
1010
9 │
1111

1212
Signature mismatch:
13-
Modules do not match:
14-
{
15-
let add: (int, int) => int
16-
}
17-
is not included in
18-
{
19-
let add: (. int, int) => int
20-
}
13+
...
2114
Values do not match:
22-
let add: (int, int) => int
15+
let add: (int, int) => int (uncurried)
2316
is not included in
24-
let add: (. int, int) => int
17+
let add: (int, int) => int (curried)
2518
/.../fixtures/uncurried_value_instead_of_curried_in_uncurried_mode.res:5:3-30:
2619
Expected declaration
2720
/.../fixtures/uncurried_value_instead_of_curried_in_uncurried_mode.res:7:7-9:

jscomp/ml/includemod.ml

+14
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,20 @@ let include_err ppf = function
537537
| Missing_field (id, loc, kind) ->
538538
fprintf ppf "The %s `%a' is required but not provided" kind ident id;
539539
show_loc "Expected declaration" ppf loc
540+
| Value_descriptions(id,
541+
({ val_type = { desc = Tlink { desc = Tconstr (Pident {name = "function$"},_,_) }}} as d1),
542+
({ val_type = { desc = Tarrow _ }} as d2)) ->
543+
fprintf ppf
544+
"@[<hv 2>Values do not match:@ %a (uncurried)@;<1 -2>is not included in@ %a (curried)@]"
545+
(value_description id) d1 (value_description id) d2;
546+
show_locs ppf (d1.val_loc, d2.val_loc)
547+
| Value_descriptions(id,
548+
({ val_type = { desc = Tlink { desc = Tarrow _ }}} as d1),
549+
({ val_type = { desc = Tconstr (Pident {name = "function$"},_,_)}} as d2)) ->
550+
fprintf ppf
551+
"@[<hv 2>Values do not match:@ %a (curried)@;<1 -2>is not included in@ %a (uncurried)@]"
552+
(value_description id) d1 (value_description id) d2;
553+
show_locs ppf (d1.val_loc, d2.val_loc)
540554
| Value_descriptions(id, d1, d2) ->
541555
fprintf ppf
542556
"@[<hv 2>Values do not match:@ %a@;<1 -2>is not included in@ %a@]"

jscomp/syntax/src/res_uncurried.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ let fromDotted ~dotted = function
88
let getDotted ~uncurried = function
99
| Config.Legacy -> uncurried
1010
| Swap -> not uncurried
11-
| Uncurried -> not uncurried
11+
| Uncurried -> false

0 commit comments

Comments
 (0)