mirror of
https://github.com/ziglang/zig.git
synced 2025-12-30 18:13:19 +00:00
This reverts commit 9f0359d78f9facc38418e32b0e8c1bf6f99f0d26 in an attempt to make the tests pass again. The CI failure from that merge should be unrelated to this commit.
51 lines
1.0 KiB
Zig
51 lines
1.0 KiB
Zig
const std = @import("std");
|
|
const builtin = @import("builtin");
|
|
|
|
const mystruct = struct {
|
|
pending: ?listofstructs,
|
|
};
|
|
pub fn DoublyLinkedList(comptime T: type) type {
|
|
return struct {
|
|
const Self = @This();
|
|
|
|
pub const Node = struct {
|
|
prev: ?*Node,
|
|
next: ?*Node,
|
|
data: T,
|
|
};
|
|
|
|
first: ?*Node,
|
|
last: ?*Node,
|
|
len: usize,
|
|
|
|
pub fn init() Self {
|
|
return Self{
|
|
.first = null,
|
|
.last = null,
|
|
.len = 0,
|
|
};
|
|
}
|
|
};
|
|
}
|
|
const listofstructs = DoublyLinkedList(mystruct);
|
|
|
|
const a = struct {
|
|
const Self = @This();
|
|
|
|
foo: listofstructs,
|
|
|
|
pub fn init() Self {
|
|
return Self{
|
|
.foo = listofstructs.init(),
|
|
};
|
|
}
|
|
};
|
|
|
|
test "initialization" {
|
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
|
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
|
|
|
var t = a.init();
|
|
try std.testing.expect(t.foo.len == 0);
|
|
}
|