Add compile errors test cases

This commit is contained in:
Mateusz Poliwczak 2025-11-04 12:31:11 +01:00
parent be4eaed7c4
commit f22d8df5dd
7 changed files with 77 additions and 0 deletions

View file

@ -0,0 +1,5 @@
inline fn entry() callconv(.c) void {}
// error
//
// :1:29: error: explicit callconv incompatible with inline keyword

View file

@ -0,0 +1,31 @@
pub const X = enum {
var foo: X = .field;
var undef: X = undefined;
field,
};
pub const Y = enum {
var undef: Y = undefined;
field,
field2,
};
export fn entry() void {
{
const foo: X = .foo; // works since X.foo is of type X (enum with only one field).
_ = foo;
}
{
const foo: X = .undef; // works since X.undef is of type X (enum with only one field).
_ = foo;
}
{
const foo: Y = .undef;
_ = foo;
}
}
// error
//
// :25:25: error: decl literal must be comptime-known

View file

@ -0,0 +1,16 @@
pub const Y = enum {
var foo: Y = .field;
field,
field2,
};
export fn entry() void {
{
const foo: Y = .foo;
_ = foo;
}
}
// error
//
// :10:25: error: decl literal must be comptime-known

View file

@ -0,0 +1,6 @@
extern var foo = 1;
extern const bar = 2;
// error
//
// :1:18: error: extern variables have no initializers
// :2:20: error: extern variables have no initializers

View file

@ -0,0 +1,4 @@
extern fn entry1() !void;
// error
//
// 1:20: error: function prototype may not have inferred error set

View file

@ -0,0 +1,4 @@
const T = struct(u8) {};
// error
//
// :1:18: error: non-packed struct does not support backing integer type

View file

@ -0,0 +1,11 @@
const a;
const b: u32;
var c;
var d: u32;
// error
//
// :1:1: error: variables must be initialized
// :2:1: error: variables must be initialized
// :4:1: error: variables must be initialized
// :5:1: error: variables must be initialized