Files
RustAst/examples/tuples.myc
T
Michael Schimmel 4f849ebd34 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.
2026-02-20 10:19:29 +01:00

20 lines
621 B
Plaintext

;; Benchmark: 1.9us
;; Demonstration of N-dimensional Tuples, Vectors, and Matrices
;; Based on docs/Tupel 1.md
;;
;; This test verifies that the literals are correctly parsed and represented.
;; Type inference is verified via internal compiler unit tests.
;;
;; Output: [[1 3.14 "text"] [10 20 30 40] [[1 2] [3 4]] [[[1 2] [3 4]] [[5 6] [7 8]]] [[1 2] [3 4 5]] {:x 1, :y 0.3}]
(do
(def tpl [1, 3.14, "text"])
(def v [10 20 30 40])
(def mat2d [[1 2], [3 4]])
(def mat3d [[[1 2] [3 4]] [[5 6] [7 8]]])
(def mixed [[1 2] [3 4 5]])
(def rec {:x 1, :y 0.3})
[tpl v mat2d mat3d mixed rec]
)