Files
c3c/test/test_suite/macros/no_body.c3

51 lines
706 B
Plaintext

module test;
extern fn int printf(char *, ...);
macro @foo(x; @body(y))
{
@body(x);
}
fn void test()
{
@foo(10); // #error: Expected call to have a trailing statement, did you forget to add it?
}
fn void test3()
{
@foo(10) // #error: Not enough parameters
{
};
}
fn void test5()
{
@foo(10; int a, int b) // #error: Too many parameters for the macro body, expected
{
};
}
macro foo_no(x)
{
return x;
}
fn void test2()
{
foo_no(10) // #error: This macro does not support trailing statements
{
printf("foek");
};
}
macro foo2(x)
{
@body(x); // #error: '@body' could not be found, did you spell it right?
}
fn void test4()
{
foo2(10);
}