Types converts to typeid implicitly.

This commit is contained in:
Christoffer Lerno
2025-08-22 00:26:18 +02:00
parent d5eec296a0
commit f36e9fea48
8 changed files with 36 additions and 21 deletions

View File

@@ -37,16 +37,26 @@ fn usz? available(InStream s)
return 0;
}
macro bool @is_instream(#expr)
macro bool @is_instream(#expr) @const
{
return @assignable_to(#expr, InStream);
}
macro bool @is_outstream(#expr)
macro bool @is_not_instream_if_ptr(#expr) @const
{
return !$defined(&#expr) ||| !@is_instream(&#expr);
}
macro bool @is_outstream(#expr) @const
{
return @assignable_to(#expr, OutStream);
}
macro bool @is_not_outstream_if_ptr(#expr) @const
{
return !$defined(&#expr) ||| !@is_outstream(&#expr);
}
<*
@param [&out] ref
@require @is_instream(stream) : "Expected a stream"