aboutsummaryrefslogtreecommitdiff
path: root/src/type.zig
diff options
context:
space:
mode:
authorVexu <git@vexu.eu>2020-09-09 17:41:51 +0300
committerVexu <git@vexu.eu>2020-09-30 16:59:08 +0300
commit7d910b024bd47d005030f9f3351e4923b2e0edc0 (patch)
tree92dd9100c344b237aecda9f6cb0a14964880f161 /src/type.zig
parent20ae15917c5cded10a01b85c2cba77041dacef1c (diff)
downloadzig-7d910b024bd47d005030f9f3351e4923b2e0edc0.tar.gz
zig-7d910b024bd47d005030f9f3351e4923b2e0edc0.zip
stage2: very basic imports
Diffstat (limited to 'src/type.zig')
-rw-r--r--src/type.zig13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/type.zig b/src/type.zig
index 8f9096fb94..bcce9d6edd 100644
--- a/src/type.zig
+++ b/src/type.zig
@@ -354,7 +354,6 @@ pub const Type = extern union {
.enum_literal,
.anyerror_void_error_union,
.@"anyframe",
- .empty_struct,
=> unreachable,
.array_u8_sentinel_0 => return self.copyPayloadShallow(allocator, Payload.Array_u8_Sentinel0),
@@ -442,6 +441,7 @@ pub const Type = extern union {
},
.error_set => return self.copyPayloadShallow(allocator, Payload.ErrorSet),
.error_set_single => return self.copyPayloadShallow(allocator, Payload.ErrorSetSingle),
+ .empty_struct => return self.copyPayloadShallow(allocator, Payload.EmptyStruct),
}
}
@@ -508,6 +508,7 @@ pub const Type = extern union {
.@"null" => return out_stream.writeAll("@Type(.Null)"),
.@"undefined" => return out_stream.writeAll("@Type(.Undefined)"),
+ // TODO this should print the structs name
.empty_struct => return out_stream.writeAll("struct {}"),
.@"anyframe" => return out_stream.writeAll("anyframe"),
.anyerror_void_error_union => return out_stream.writeAll("anyerror!void"),
@@ -2837,7 +2838,6 @@ pub const Type = extern union {
single_const_pointer_to_comptime_int,
anyerror_void_error_union,
@"anyframe",
- empty_struct,
const_slice_u8, // See last_no_payload_tag below.
// After this, the tag requires a payload.
@@ -2864,6 +2864,7 @@ pub const Type = extern union {
anyframe_T,
error_set,
error_set_single,
+ empty_struct,
pub const last_no_payload_tag = Tag.const_slice_u8;
pub const no_payload_count = @enumToInt(last_no_payload_tag) + 1;
@@ -2971,6 +2972,14 @@ pub const Type = extern union {
/// memory is owned by `Module`
name: []const u8,
};
+
+ /// Mostly used for namespace like structs with zero fields.
+ /// Most commonly used for files.
+ pub const EmptyStruct = struct {
+ base: Payload = .{ .tag = .empty_struct },
+
+ scope: *Module.Scope.Container,
+ };
};
};