From a257e33fff8dd9efa7f43ea14e05eef65a7f3354 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 20 Jun 2023 13:12:15 -0400 Subject: Type: remove arbitrary restrictions on param and return types Opaque and `noreturn` makes sense since they don't represent real values, but `null` and `undefined` are perfectly normal comptime-only values. Closes #16088 --- src/type.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/type.zig') diff --git a/src/type.zig b/src/type.zig index bce97b65cb..d7470f1e2b 100644 --- a/src/type.zig +++ b/src/type.zig @@ -2405,14 +2405,14 @@ pub const Type = struct { pub fn isValidParamType(self: Type, mod: *const Module) bool { return switch (self.zigTypeTagOrPoison(mod) catch return true) { - .Undefined, .Null, .Opaque, .NoReturn => false, + .Opaque, .NoReturn => false, else => true, }; } pub fn isValidReturnType(self: Type, mod: *const Module) bool { return switch (self.zigTypeTagOrPoison(mod) catch return true) { - .Undefined, .Null, .Opaque => false, + .Opaque => false, else => true, }; } -- cgit v1.2.3