module abc;

macro int mtest1(int a) @nodiscard { return 0; }
macro int? mtest2(int a) { return 0; }
fn int ftest1(int a) @nodiscard { return 0; }
fn int? ftest2(int a) { return 0; }


fn void main()
{
	mtest1(3); // #error: The called macro is marked `@nodiscard`
	mtest2(3); // #error: The macro returns 'int?', which is an optional
	ftest1(3); // #error: The called function is marked `@nodiscard`
	ftest2(3); // #error: The function returns 'int?'
}