mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-22 21:54:59 -07:00
Implement constant value generation from ExactValue
This commit is contained in:
-28
@@ -5911,34 +5911,6 @@ irValue *ir_type_info(irProcedure *proc, Type *type) {
|
||||
return ir_emit_array_ep(proc, ir_global_type_info_data, ir_const_i32(id));
|
||||
}
|
||||
|
||||
// IMPORTANT NOTE(bill): This must match the same as the in core.odin
|
||||
enum Typeid_Kind : u8 {
|
||||
Typeid_Invalid,
|
||||
Typeid_Integer,
|
||||
Typeid_Rune,
|
||||
Typeid_Float,
|
||||
Typeid_Complex,
|
||||
Typeid_Quaternion,
|
||||
Typeid_String,
|
||||
Typeid_Boolean,
|
||||
Typeid_Any,
|
||||
Typeid_Type_Id,
|
||||
Typeid_Pointer,
|
||||
Typeid_Procedure,
|
||||
Typeid_Array,
|
||||
Typeid_Enumerated_Array,
|
||||
Typeid_Dynamic_Array,
|
||||
Typeid_Slice,
|
||||
Typeid_Tuple,
|
||||
Typeid_Struct,
|
||||
Typeid_Union,
|
||||
Typeid_Enum,
|
||||
Typeid_Map,
|
||||
Typeid_Bit_Field,
|
||||
Typeid_Bit_Set,
|
||||
};
|
||||
|
||||
|
||||
irValue *ir_typeid(irModule *m, Type *type) {
|
||||
type = default_type(type);
|
||||
|
||||
|
||||
+1
-2
@@ -1014,8 +1014,7 @@ void ir_print_exact_value(irFileBuffer *f, irModule *m, ExactValue value, Type *
|
||||
} else if (is_type_enumerated_array(type)) {
|
||||
ast_node(cl, CompoundLit, value.value_compound);
|
||||
|
||||
Type *index_type = type->EnumeratedArray.elem;
|
||||
Type *elem_type = type->Array.elem;
|
||||
Type *elem_type = type->EnumeratedArray.elem;
|
||||
isize elem_count = cl->elems.count;
|
||||
if (elem_count == 0) {
|
||||
ir_write_str_lit(f, "zeroinitializer");
|
||||
|
||||
+916
-193
File diff suppressed because it is too large
Load Diff
@@ -305,6 +305,34 @@ struct Type {
|
||||
bool failure;
|
||||
};
|
||||
|
||||
// IMPORTANT NOTE(bill): This must match the same as the in core.odin
|
||||
enum Typeid_Kind : u8 {
|
||||
Typeid_Invalid,
|
||||
Typeid_Integer,
|
||||
Typeid_Rune,
|
||||
Typeid_Float,
|
||||
Typeid_Complex,
|
||||
Typeid_Quaternion,
|
||||
Typeid_String,
|
||||
Typeid_Boolean,
|
||||
Typeid_Any,
|
||||
Typeid_Type_Id,
|
||||
Typeid_Pointer,
|
||||
Typeid_Procedure,
|
||||
Typeid_Array,
|
||||
Typeid_Enumerated_Array,
|
||||
Typeid_Dynamic_Array,
|
||||
Typeid_Slice,
|
||||
Typeid_Tuple,
|
||||
Typeid_Struct,
|
||||
Typeid_Union,
|
||||
Typeid_Enum,
|
||||
Typeid_Map,
|
||||
Typeid_Bit_Field,
|
||||
Typeid_Bit_Set,
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// TODO(bill): Should I add extra information here specifying the kind of selection?
|
||||
|
||||
Reference in New Issue
Block a user