Updated type grammar #65

This commit is contained in:
2026-06-05 17:06:06 +02:00
parent 94320bafa6
commit 40b2981252
13 changed files with 5 additions and 823 deletions
-60
View File
@@ -1,60 +0,0 @@
enum OptionInt {
None,
Some[i32],
}
pub void test_enum_named() {
let x = OptionInt::None;
match (x) {
OptionInt::None => { assert_eq!(1, 1); }
OptionInt::Some[_] => { assert_eq!(0, 1); }
}
}
pub void test_enum_tuple() {
let x = OptionInt::Some(42);
match (x) {
OptionInt::None => { assert_eq!(0, 1); }
OptionInt::Some[v] => { assert_eq!(v, 42); }
}
}
enum Shape {
Circle { i32 radius },
Rect { i32 w, i32 h },
}
pub void test_enum_struct() {
let c = Shape::Circle { radius: 5 };
match (c) {
Shape::Circle { radius } => { assert_eq!(radius, 5); }
Shape::Rect { .. } => { assert_eq!(0, 1); }
}
let r = Shape::Rect { w: 3, h: 4 };
match (r) {
Shape::Circle { .. } => { assert_eq!(0, 1); }
Shape::Rect { w, h } => { assert_eq!(w * h, 12); }
}
}
enum Color {
Red,
Green,
Blue,
}
pub void test_enum_eq() {
let c = Color::Red;
match (c) {
Color::Red => { assert_eq!(1, 1); }
_ => { assert_eq!(0, 1); }
}
}
pub void run_tests() {
test_enum_named();
test_enum_tuple();
test_enum_struct();
test_enum_eq();
}