choice1.golden 925 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. ********** source program **********
  2. choice Ints {
  3. alt None ();
  4. alt One Int;
  5. alt Two (0 = Int, 1 = Int);
  6. }
  7. fn main () -> Int {
  8. var auto: x = Ints.None();
  9. var auto: y = Ints.One(0 = 42);
  10. var auto: n = 0;
  11. match (y) {
  12. case Ints.None =>
  13. n = (n + 2);
  14. case Ints.One(0 = auto: x) =>
  15. n = ((x + 1) - 42);
  16. case Ints.Two(0 = auto: a, 1 = auto: b) =>
  17. n = 2;
  18. }
  19. match (x) {
  20. case Ints.One(0 = auto: x) =>
  21. n = (x + 2);
  22. case Ints.None() =>
  23. n = (n - 1);
  24. case Ints.Two(0 = auto: x, 1 = auto: y) =>
  25. n = 5;
  26. }
  27. return n;
  28. }
  29. ********** type checking **********
  30. --- step exp () --->
  31. --- step exp Int --->
  32. --- step exp (0 = Int, 1 = Int) --->
  33. --- step exp Int --->
  34. --- handle value Int with (0 = Int, 1 = Int)<1>(Int,) --->
  35. --- step exp Int --->
  36. --- handle value Int with (0 = Int, 1 = Int)<2>(Int,Int,) --->
  37. --- step exp Int --->
  38. --- step exp Int --->
  39. --- step exp auto --->
  40. 13: type error in call
  41. expected: Int
  42. actual: Tuple(0 = Int)
  43. EXIT CODE: 255