mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
Sema: update onePossibleValue for InternPool
This commit is contained in:
parent
f7bd42785b
commit
73720b6975
20
src/type.zig
20
src/type.zig
@ -3909,15 +3909,27 @@ pub const Type = struct {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
.ptr_type => @panic("TODO"),
|
||||
.array_type => @panic("TODO"),
|
||||
.ptr_type => return null,
|
||||
.array_type => |array_type| {
|
||||
if (array_type.len == 0)
|
||||
return Value.initTag(.empty_array);
|
||||
if (array_type.child.toType().onePossibleValue(mod) != null)
|
||||
return Value.initTag(.the_only_possible_value);
|
||||
return null;
|
||||
},
|
||||
.vector_type => |vector_type| {
|
||||
if (vector_type.len == 0) return Value.initTag(.empty_array);
|
||||
if (vector_type.child.toType().onePossibleValue(mod)) |v| return v;
|
||||
return null;
|
||||
},
|
||||
.opt_type => @panic("TODO"),
|
||||
.error_union_type => @panic("TODO"),
|
||||
.opt_type => |child| {
|
||||
if (child.toType().isNoReturn()) {
|
||||
return Value.null;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
.error_union_type => return null,
|
||||
.simple_type => |t| switch (t) {
|
||||
.f16,
|
||||
.f32,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user