mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Interfaces not correctly copied with generics #1545.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// #target: macos-aarch64
|
||||
module gen(<Type>);
|
||||
|
||||
fn Type mult(Type x)
|
||||
|
||||
31
test/test_suite/generic/generic_interface.c3t
Normal file
31
test/test_suite/generic/generic_interface.c3t
Normal file
@@ -0,0 +1,31 @@
|
||||
// #target: macos-aarch64
|
||||
module base;
|
||||
|
||||
module test(<MyType>);
|
||||
import base;
|
||||
interface Zzz
|
||||
{
|
||||
fn void zzz(MyType t);
|
||||
}
|
||||
struct TestStruct (Zzz)
|
||||
{
|
||||
String data;
|
||||
}
|
||||
fn void TestStruct.zzz(&self, MyType t) @dynamic { }
|
||||
|
||||
module app;
|
||||
import test;
|
||||
fn int main()
|
||||
{
|
||||
TestStruct(<int>) ts;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* #expect: app.ll
|
||||
|
||||
define i32 @main() #0 {
|
||||
entry:
|
||||
%ts = alloca %TestStruct, align 8
|
||||
call void @llvm.memset.p0.i64(ptr align 8 %ts, i8 0, i64 16, i1 false)
|
||||
ret i32 0
|
||||
}
|
||||
Reference in New Issue
Block a user