- In some cases, a type would not get implicitly converted to a typeid #2764.

This commit is contained in:
Christoffer Lerno
2026-01-16 11:41:18 +01:00
parent 51364a9d1b
commit 70c4b24519
3 changed files with 17 additions and 0 deletions

View File

@@ -62,6 +62,7 @@
- Hashing a vector would not use the entire vector in some cases.
- Fix to `temp_directory` on Windows #2762.
- Too little memory reserved when printing backtrace on Darwin #2698.
- In some cases, a type would not get implicitly converted to a typeid #2764.
### Stdlib changes
- Add `ThreadPool` join function to wait for all threads to finish in the pool without destroying the threads.

View File

@@ -12431,6 +12431,7 @@ RETRY:
SEMA_ERROR(expr, "Recursive resolution of list.");
return expr_poison(expr);
case RESOLVE_DONE:
if (!sema_cast_rvalue(context, expr, true)) return false;
if (to && expr->type != to)
{
cast_implicit_silent(context, expr, to, false);

View File

@@ -0,0 +1,15 @@
module testing_branch;
faultdef FOO;
macro usz? problemz(val) => val >= 5 ? usz : FOO~; // #error: Implicitly casting 'typeid' to 'usz'
macro usz? problemz2(val) => val >= 5 ? $typefrom("usz") : FOO~; // #error: Implicitly casting 'typeid' to 'usz'
fn int main()
{
for (usz i = 0; i < 10; i++)
{
problemz(i)!!;
problemz2(i)!!;
}
return 0;
}