Refactor type inference for collections

The type inference for collections (tuples, vectors, matrices, and
records) has been significantly refactored.

This includes:
- Introducing distinct `StaticType` variants for `Tuple`, `Vector`, and
  `Matrix`.
- Implementing more robust type checking for these collections, allowing
  for homogeneous and heterogeneous structures.
- Enhancing the `is_assignable_from` method to handle type compatibility
  between these collection types.
- Updating `Value::static_type()` to correctly infer the types of
  literal collections.
- Improving the type inference for map literals to create `Record`
  types.
- Adding comprehensive unit tests for tuple, vector, matrix, and record
  type inference.
This commit is contained in:
Michael Schimmel
2026-02-20 10:19:29 +01:00
parent 494bf554d2
commit 4f849ebd34
12 changed files with 225 additions and 50 deletions
+1 -1
View File
@@ -87,7 +87,7 @@ mod tests {
for entry in entries {
let entry = entry.expect("Invalid entry");
let path = entry.path();
if path.extension().map_or(false, |ext| ext == "myc") {
if path.extension().is_some_and(|ext| ext == "myc") {
let content = fs::read_to_string(&path).expect("Could not read file");
// Find expected output tag: ;; Output: <value>