Splatting optional compile-time macro parameter from inside lambda expression does not work #2532.

This commit is contained in:
Christoffer Lerno
2025-10-19 23:05:37 +02:00
parent 5ed1281451
commit 0bd2c81757
3 changed files with 50 additions and 6 deletions

View File

@@ -0,0 +1,31 @@
// #target: macos-x64
module test;
import std;
fn int main()
{
bool x = test1a(true)();
return 0;
}
macro test1a(bool $a = ...) => fn bool()
{
return test1b(...$a);
};
macro test1b(bool $a = ...) => $defined($a) ??? $a : false;
/* #expect: test.ll
define i32 @main() #0 {
entry:
%x = alloca i8, align 1
%0 = call i8 @"test.test1a$lambda1"()
store i8 %0, ptr %x, align 1
ret i32 0
}
define internal zeroext i8 @"test.test1a$lambda1"() #0 {
entry:
ret i8 1
}