35 lines
619 B
Plaintext
35 lines
619 B
Plaintext
pub type Foo {
|
|
i: Int,
|
|
b: Bool,
|
|
}
|
|
|
|
const give_i: fn(Int) -> Foo = Foo { i: _, b: True }
|
|
|
|
const give_b: fn(Bool) -> Foo = Foo(1337, _)
|
|
|
|
fn foo_i(i: Int) -> fn(Bool) -> Foo {
|
|
Foo { i: i, b: _bool }
|
|
}
|
|
|
|
fn foo_b(b: Bool) -> fn(Int) -> Foo {
|
|
Foo(_, b)
|
|
}
|
|
|
|
test test_1() {
|
|
let bar = foo_i(14)
|
|
and {
|
|
foo_i(42)(True) == Foo(42, True),
|
|
bar(False) == Foo { i: 14, b: False },
|
|
give_i(1337) == Foo { i: 1337, b: True },
|
|
}
|
|
}
|
|
|
|
test test_2() {
|
|
let bar = foo_b(False)
|
|
and {
|
|
foo_b(True)(42) == Foo(42, True),
|
|
bar(14) == Foo { i: 14, b: False },
|
|
give_b(False) == Foo { i: 1337, b: False },
|
|
}
|
|
}
|