Cannot use void as a generic parameter #1546. Interfaces now support .ptr and .type directly without casting to any.

This commit is contained in:
Christoffer Lerno
2024-10-11 12:10:35 +02:00
parent 1adad860f4
commit 8e24f15d58
6 changed files with 57 additions and 7 deletions

View File

@@ -0,0 +1,29 @@
// #target: macos-x64
module test(<Type>);
def Callback = fn Type();
module mymain;
import std::io;
import test;
def VoidCb = test::Callback(<void>);
fn int main()
{
VoidCb a = null;
void *b = a;
return 0;
}
/* #expect: mymain.ll
define i32 @main() #0 {
entry:
%a = alloca ptr, align 8
%b = alloca ptr, align 8
store ptr null, ptr %a, align 8
%0 = load ptr, ptr %a, align 8
store ptr %0, ptr %b, align 8
ret i32 0
}