cl-ast: Cleanup

- Function bind is now one Pattern
- TyRef now allows &Ty (i.e. &[i32], &(char, bool)
- Range patterns (they cannot bind, only check whether a value is in range
- ArrayRep repeat has been reverted to usize, for now, until early consteval is implemented.
This commit is contained in:
2025-04-21 04:17:45 -04:00
parent ef92d8b798
commit 7ba808594c
15 changed files with 252 additions and 134 deletions

View File

@@ -5,14 +5,14 @@ struct Student {
age: i32,
}
fn Student (name: str, age: i32) -> Student {
Student: { name, age }
fn Student(name: str, age: i32) -> Student {
Student { name, age }
}
fn match_test(student: Student) {
match student {
Student: { name: "shark", age } => println("Found a shark of ", age, " year(s)"),
Student: { name, age: 22 } => println("Found a 22-year-old named ", name),
Student: { name, age } => println("Found someone named ", name, " of ", age, " year(s)"),
Student { name: "shark", age } => println("Found a shark of ", age, " year(s)"),
Student { name, age: 22 } => println("Found a 22-year-old named ", name),
Student { name, age } => println("Found someone named ", name, " of ", age, " year(s)"),
}
}