Skip to content

Commit cc77744

Browse files
committed
Add test to assert uncurried deriving accessors is unhandled
1 parent c634719 commit cc77744

8 files changed

+87
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
var p = require("child_process");
2+
var assert = require("assert");
3+
var rescript_exe = require("../../../scripts/bin_path").rescript_exe;
4+
var o = p.spawnSync(rescript_exe, {
5+
encoding: "utf8",
6+
cwd: __dirname,
7+
});
8+
9+
if (o.status === 0) {
10+
assert.fail(
11+
"Deriving accessors should fail build in uncurried mode \n" + o.stdout
12+
);
13+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "uncurried",
3+
"version": "0.1.0",
4+
"sources": {
5+
"dir": "src",
6+
"subdirs": true
7+
},
8+
"uncurried": false
9+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
@deriving(accessors)
2+
type myRecord = { myField: int }
3+
4+
//Asserts the correct signature for derived accessor
5+
let _myFieldAlias: myRecord => int = myField
6+
7+
//Asserts that inference works when composing
8+
//with derived functions
9+
let compose = (a, accessor) => accessor(a)
10+
let _composedNum = compose({ myField: 1 }, myField)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@@uncurried
2+
@deriving(accessors)
3+
type myRecord = { myField: int }
4+
5+
//Asserts the correct signature for derived accessor
6+
let _myFieldAlias: myRecord => int = myField
7+
8+
//Asserts that inference works when composing
9+
//with derived functions
10+
let compose = (a, accessor) => accessor(a)
11+
let _composedNum = compose({ myField: 1 }, myField)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
@deriving(accessors)
2+
type variant = | Num(int)
3+
4+
//Asserts the correct signature for derived accessor
5+
let _numAlias: int => variant = num
6+
7+
//Asserts that inference works when composing
8+
//with derived functions
9+
let compose = (a, accessor) => accessor(a)
10+
let _composedNum = compose(1, num)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@deriving(accessors)
2+
type variant = | DoubleNum(int, int)
3+
4+
//Asserts the correct signature for derived accessor
5+
let _numAlias: (int, int) => variant = doubleNum
6+
7+
//Asserts that inference works when composing
8+
//with derived functions
9+
let compose = (a, b, accessor) => accessor(a, b)
10+
let _composedNum = compose(1, 2, doubleNum)
11+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@@uncurried
2+
@deriving(accessors)
3+
type variant = | Num(int)
4+
5+
//Asserts the correct signature for derived accessor
6+
let _numAlias: int => variant = num
7+
8+
//Asserts that inference works when composing
9+
//with derived functions
10+
let compose = (a, accessor) => accessor(a)
11+
let _composedNum = compose(1, num)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@@uncurried
2+
@deriving(accessors)
3+
type variant = | DoubleNum(int, int)
4+
5+
//Asserts the correct signature for derived accessor
6+
let _numAlias: (int, int) => variant = doubleNum
7+
8+
//Asserts that inference works when composing
9+
//with derived functions
10+
let compose = (a, b, accessor) => accessor(a, b)
11+
let _composedNum = compose(1, 2, doubleNum)
12+

0 commit comments

Comments
 (0)