Files
carbon-lang/executable_semantics/testdata/choice1.golden
T

45 lines
925 B
Plaintext

********** source program **********
choice Ints {
alt None ();
alt One Int;
alt Two (0 = Int, 1 = Int);
}
fn main () -> Int {
var auto: x = Ints.None();
var auto: y = Ints.One(0 = 42);
var auto: n = 0;
match (y) {
case Ints.None =>
n = (n + 2);
case Ints.One(0 = auto: x) =>
n = ((x + 1) - 42);
case Ints.Two(0 = auto: a, 1 = auto: b) =>
n = 2;
}
match (x) {
case Ints.One(0 = auto: x) =>
n = (x + 2);
case Ints.None() =>
n = (n - 1);
case Ints.Two(0 = auto: x, 1 = auto: y) =>
n = 5;
}
return n;
}
********** type checking **********
--- step exp () --->
--- step exp Int --->
--- step exp (0 = Int, 1 = Int) --->
--- step exp Int --->
--- handle value Int with (0 = Int, 1 = Int)<1>(Int,) --->
--- step exp Int --->
--- handle value Int with (0 = Int, 1 = Int)<2>(Int,Int,) --->
--- step exp Int --->
--- step exp Int --->
--- step exp auto --->
13: type error in call
expected: Int
actual: Tuple(0 = Int)
EXIT CODE: 255