Skip to content

Commit d863cdb

Browse files
committed
Add tests for newtype-style tags
1 parent 432e5e9 commit d863cdb

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
tag myvec[X] = vec[X];
2+
3+
fn myvec_deref[X](&myvec[X] mv) -> vec[X] {
4+
ret *mv;
5+
}
6+
7+
fn myvec_elt[X](&myvec[X] mv) -> X {
8+
ret mv.(0);
9+
}
10+
11+
fn main() {
12+
auto mv = myvec([1, 2, 3]);
13+
assert(myvec_deref(mv).(1) == 2);
14+
assert(myvec_elt(mv) == 1);
15+
assert(mv.(2) == 3);
16+
}

src/test/run-pass/newtype.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
tag mytype = rec(fn (&mytype i) -> int compute, int val);
2+
3+
fn compute(&mytype i) -> int {
4+
ret i.val + 20;
5+
}
6+
7+
fn main() {
8+
auto myval = mytype(rec(compute=compute, val=30));
9+
assert(myval.compute(myval) == 50);
10+
}

0 commit comments

Comments
 (0)