more comptime interpreter tests
This commit is contained in:
parent
3c7e9e13ce
commit
3872915701
@ -83,9 +83,30 @@ test "ComptimeInterpreter - if" {
|
|||||||
\\ break :blk if (false) true else false;
|
\\ break :blk if (false) true else false;
|
||||||
\\}
|
\\}
|
||||||
, .{ .simple = .bool }, .{ .simple = .bool_false });
|
, .{ .simple = .bool }, .{ .simple = .bool_false });
|
||||||
|
try testExpr(
|
||||||
|
\\blk: {
|
||||||
|
\\ if (false) break :blk true;
|
||||||
|
\\ break :blk false;
|
||||||
|
\\}
|
||||||
|
, .{ .simple = .bool }, .{ .simple = .bool_false });
|
||||||
|
// TODO
|
||||||
|
// try testExpr(
|
||||||
|
// \\outer: {
|
||||||
|
// \\ if (:inner {
|
||||||
|
// \\ break :inner true;
|
||||||
|
// \\ }) break :outer true;
|
||||||
|
// \\ break :outer false;
|
||||||
|
// \\}
|
||||||
|
// , .{ .simple = .bool }, .{ .simple = .bool_true });
|
||||||
}
|
}
|
||||||
|
|
||||||
test "ComptimeInterpreter - variable lookup" {
|
test "ComptimeInterpreter - variable lookup" {
|
||||||
|
try testExpr(
|
||||||
|
\\blk: {
|
||||||
|
\\ var foo = 42;
|
||||||
|
\\ break :blk foo;
|
||||||
|
\\}
|
||||||
|
, .{ .simple = .comptime_int }, .{ .int_u64_value = 42 });
|
||||||
try testExpr(
|
try testExpr(
|
||||||
\\blk: {
|
\\blk: {
|
||||||
\\ var foo = 1;
|
\\ var foo = 1;
|
||||||
@ -113,6 +134,31 @@ test "ComptimeInterpreter - field access" {
|
|||||||
\\ break :blk foo.beta;
|
\\ break :blk foo.beta;
|
||||||
\\}
|
\\}
|
||||||
, .{ .simple = .bool }, null);
|
, .{ .simple = .bool }, null);
|
||||||
|
try testExpr(
|
||||||
|
\\blk: {
|
||||||
|
\\ const foo: struct {alpha: u64, beta: bool} = undefined;
|
||||||
|
\\ break :blk foo.alpha;
|
||||||
|
\\}
|
||||||
|
, .{ .int_type = .{
|
||||||
|
.signedness = .unsigned,
|
||||||
|
.bits = 64,
|
||||||
|
} }, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "ComptimeInterpreter - optional operations" {
|
||||||
|
if (true) return error.SkipZigTest; // TODO
|
||||||
|
try testExpr(
|
||||||
|
\\blk: {
|
||||||
|
\\ const foo: ?bool = true;
|
||||||
|
\\ break :blk foo.?;
|
||||||
|
\\}
|
||||||
|
, .{ .simple = .bool }, .{ .simple = .bool_true });
|
||||||
|
try testExpr(
|
||||||
|
\\blk: {
|
||||||
|
\\ const foo: ?bool = true;
|
||||||
|
\\ break :blk foo == null;
|
||||||
|
\\}
|
||||||
|
, .{ .simple = .bool }, .{ .simple = .bool_false });
|
||||||
}
|
}
|
||||||
|
|
||||||
test "ComptimeInterpreter - pointer operations" {
|
test "ComptimeInterpreter - pointer operations" {
|
||||||
|
Loading…
Reference in New Issue
Block a user