mirror of
https://github.com/ziglang/zig.git
synced 2026-01-12 10:25:13 +00:00
39 lines
861 B
Zig
39 lines
861 B
Zig
const std = @import("std");
|
|
const testing = std.testing;
|
|
const expect = testing.expect;
|
|
const expectEqual = testing.expectEqual;
|
|
|
|
test "passing an optional integer as a parameter" {
|
|
const S = struct {
|
|
fn entry() bool {
|
|
var x: i32 = 1234;
|
|
return foo(x);
|
|
}
|
|
|
|
fn foo(x: ?i32) bool {
|
|
return x.? == 1234;
|
|
}
|
|
};
|
|
try expect(S.entry());
|
|
comptime try expect(S.entry());
|
|
}
|
|
|
|
test "self-referential struct through a slice of optional" {
|
|
const S = struct {
|
|
const Node = struct {
|
|
children: []?Node,
|
|
data: ?u8,
|
|
|
|
fn new() Node {
|
|
return Node{
|
|
.children = undefined,
|
|
.data = null,
|
|
};
|
|
}
|
|
};
|
|
};
|
|
|
|
var n = S.Node.new();
|
|
try expect(n.data == null);
|
|
}
|