mirror of
https://github.com/ziglang/zig.git
synced 2024-11-27 15:42:49 +00:00
parent
cfaced3f73
commit
64034a3d1a
@ -4326,10 +4326,13 @@ static TypeTableEntry *analyze_min_max_value(CodeGen *g, ImportTableEntry *impor
|
||||
|
||||
if (type_entry->id == TypeTableEntryIdInvalid) {
|
||||
return g->builtin_types.entry_invalid;
|
||||
} else if (type_entry->id == TypeTableEntryIdInt ||
|
||||
type_entry->id == TypeTableEntryIdFloat ||
|
||||
type_entry->id == TypeTableEntryIdBool)
|
||||
{
|
||||
} else if (type_entry->id == TypeTableEntryIdInt) {
|
||||
eval_min_max_value(g, type_entry, &get_resolved_expr(node)->const_val, is_max);
|
||||
return g->builtin_types.entry_num_lit_int;
|
||||
} else if (type_entry->id == TypeTableEntryIdFloat) {
|
||||
eval_min_max_value(g, type_entry, &get_resolved_expr(node)->const_val, is_max);
|
||||
return g->builtin_types.entry_num_lit_float;
|
||||
} else if (type_entry->id == TypeTableEntryIdBool) {
|
||||
eval_min_max_value(g, type_entry, &get_resolved_expr(node)->const_val, is_max);
|
||||
return type_entry;
|
||||
} else {
|
||||
|
10
test/cases/max_value_type.zig
Normal file
10
test/cases/max_value_type.zig
Normal file
@ -0,0 +1,10 @@
|
||||
const assert = @import("std").debug.assert;
|
||||
|
||||
#attribute("test")
|
||||
fn maxValueType() {
|
||||
// If the type of @maxValue(i32) was i32 then this implicit cast to
|
||||
// u32 would not work. But since the value is a number literal,
|
||||
// it works fine.
|
||||
const x: u32 = @maxValue(i32);
|
||||
assert(x == 2147483647);
|
||||
}
|
@ -7,6 +7,7 @@ const test_return_type_type = @import("cases/return_type_type.zig");
|
||||
const test_zeroes = @import("cases/zeroes.zig");
|
||||
const test_sizeof_and_typeof = @import("cases/sizeof_and_typeof.zig");
|
||||
const test_maybe_return = @import("cases/maybe_return.zig");
|
||||
const test_max_value_type = @import("cases/max_value_type.zig");
|
||||
|
||||
// normal comment
|
||||
/// this is a documentation comment
|
||||
|
Loading…
Reference in New Issue
Block a user