$and, $or, $is_const, $assignable, .is_eq, .is_ordered, $defined($vatype(2)) works looking if we can create a type, $defined(foo[0]) $defined(foo()). Remove $checks and @checked. Improvide casting checks to always work without destructive changes.

This commit is contained in:
Christoffer Lerno
2023-10-23 00:21:11 +02:00
committed by Christoffer Lerno
parent 8a12dc5bd4
commit 9af37fe427
46 changed files with 1149 additions and 801 deletions

View File

@@ -0,0 +1,24 @@
module castable @test;
fn void assignable()
{
assert($assignable(12.0, int) == false);
assert($assignable(12, int));
assert(!$assignable("12", int));
assert($assignable("12", String));
assert($assignable("12", char*));
assert($assignable("12", char[*]));
assert($assignable("12", char[2]));
assert($assignable("12", char[3]));
}
fn void castable()
{
assert($defined((int)12.0));
assert($defined((int)12));
assert(!$defined((int)"12"));
assert($defined((String)"12"));
assert($defined((char*)"12"));
assert($defined((char[2])"12"));
assert($defined((char[3])"12"));
}