Finch/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nexoniarz 609ceffe58 enums and match (in the compiler written in Finch)
enum Color { Red, Green, Blue }   enum Status { Ok = 200, NotFound = 404 }

Color.Red, Color(n) (checked), int(c), == and != only, printed by name, usable as
map keys and struct fields, with methods (fn Color.next()).

match value { Red, Green -> ... Blue -> ... else -> ... } as a statement, or as an
expression that gives a value. Works on enums, whole numbers, chars, text and bools;
a match on an enum has to handle every variant or end with else, and says which are
missing. A bare variant name (Red) is enough inside a match on an enum.

Only the self-hosted compiler has them; tests/new holds their tests, tests/run stays what
the C++ compiler also runs. boot.sh: 31 passed.
2026-10-25 20:49:04 +01:00
..
fail Fix the two known limits: adding map keys while looping over the map is a runtime error; temporaries held by an expression are freed when try / or-blocks leave early. err usable after or, inner err shadows outer. 2026-10-25 19:13:46 +01:00
new enums and match (in the compiler written in Finch) 2026-10-25 20:49:04 +01:00
run boot: methods (fn T.m, self by address, mutation analysis), str() of any value 2026-10-25 19:13:46 +01:00
boot.sh enums and match (in the compiler written in Finch) 2026-10-25 20:49:04 +01:00
cimport_boot_test.fch boot: cimport.fch, the C header importer written in Finch on libclang 2026-10-25 19:40:50 +01:00
cross.sh ARM64 and macOS: AAPCS64 struct passing, aarch64/macos targets, Apple frameworks and ld messages, tests/cross.sh, CI on ARM64 Linux and macOS 2026-10-09 00:34:00 +02:00
lsp_test.py Finch 2.4.0: methods, maps, errors as values; str() of any value; macOS and ARM64 docs; Kate support 2026-10-09 01:11:12 +02:00
run.sh Finch 2.4.0: methods, maps, errors as values; str() of any value; macOS and ARM64 docs; Kate support 2026-10-09 01:11:12 +02:00