Commit 4eeeda0f52

Vexu <git@vexu.eu>
2020-09-03 15:49:20
remove deprecated fields from types
1 parent fb3c5b8
Changed files (2)
src/analyze.cpp
@@ -1810,7 +1810,7 @@ Error type_allowed_in_extern(CodeGen *g, ZigType *type_entry, bool *result) {
 ZigType *get_auto_err_set_type(CodeGen *g, ZigFn *fn_entry) {
     ZigType *err_set_type = new_type_table_entry(ZigTypeIdErrorSet);
     buf_resize(&err_set_type->name, 0);
-    buf_appendf(&err_set_type->name, "@TypeOf(%s).ReturnType.ErrorSet", buf_ptr(&fn_entry->symbol_name));
+    buf_appendf(&err_set_type->name, "@typeInfo(@typeInfo(@TypeOf(%s)).Fn.return_type.?).ErrorUnion.error_set", buf_ptr(&fn_entry->symbol_name));
     err_set_type->data.error_set.err_count = 0;
     err_set_type->data.error_set.errors = nullptr;
     err_set_type->data.error_set.infer_fn = fn_entry;
src/ir.cpp
@@ -22835,167 +22835,9 @@ static IrInstGen *ir_analyze_instruction_field_ptr(IrAnalyze *ira, IrInstSrcFiel
             bool ptr_is_volatile = false;
             return ir_get_const_ptr(ira, &field_ptr_instruction->base.base, const_val,
                     err_set_type, ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-        } else if (child_type->id == ZigTypeIdInt) {
-            if (buf_eql_str(field_name, "bit_count")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_unsigned_negative(ira->codegen, ira->codegen->builtin_types.entry_num_lit_int,
-                        child_type->data.integral.bit_count, false),
-                    ira->codegen->builtin_types.entry_num_lit_int,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else if (buf_eql_str(field_name, "is_signed")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_bool(ira->codegen, child_type->data.integral.is_signed),
-                    ira->codegen->builtin_types.entry_bool,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else {
-                ir_add_error(ira, &field_ptr_instruction->base.base,
-                    buf_sprintf("type '%s' has no member called '%s'",
-                        buf_ptr(&child_type->name), buf_ptr(field_name)));
-                return ira->codegen->invalid_inst_gen;
-            }
-        } else if (child_type->id == ZigTypeIdFloat) {
-            if (buf_eql_str(field_name, "bit_count")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_unsigned_negative(ira->codegen, ira->codegen->builtin_types.entry_num_lit_int,
-                        child_type->data.floating.bit_count, false),
-                    ira->codegen->builtin_types.entry_num_lit_int,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else {
-                ir_add_error(ira, &field_ptr_instruction->base.base,
-                    buf_sprintf("type '%s' has no member called '%s'",
-                        buf_ptr(&child_type->name), buf_ptr(field_name)));
-                return ira->codegen->invalid_inst_gen;
-            }
-        } else if (child_type->id == ZigTypeIdPointer) {
-            if (buf_eql_str(field_name, "Child")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_type(ira->codegen, child_type->data.pointer.child_type),
-                    ira->codegen->builtin_types.entry_type,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else if (buf_eql_str(field_name, "alignment")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                if ((err = type_resolve(ira->codegen, child_type->data.pointer.child_type,
-                                ResolveStatusAlignmentKnown)))
-                {
-                    return ira->codegen->invalid_inst_gen;
-                }
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_unsigned_negative(ira->codegen, ira->codegen->builtin_types.entry_num_lit_int,
-                        get_ptr_align(ira->codegen, child_type), false),
-                    ira->codegen->builtin_types.entry_num_lit_int,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else {
-                ir_add_error(ira, &field_ptr_instruction->base.base,
-                    buf_sprintf("type '%s' has no member called '%s'",
-                        buf_ptr(&child_type->name), buf_ptr(field_name)));
-                return ira->codegen->invalid_inst_gen;
-            }
-        } else if (child_type->id == ZigTypeIdArray) {
-            if (buf_eql_str(field_name, "Child")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_type(ira->codegen, child_type->data.array.child_type),
-                    ira->codegen->builtin_types.entry_type,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else if (buf_eql_str(field_name, "len")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_unsigned_negative(ira->codegen, ira->codegen->builtin_types.entry_num_lit_int,
-                        child_type->data.array.len, false),
-                    ira->codegen->builtin_types.entry_num_lit_int,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else {
-                ir_add_error(ira, &field_ptr_instruction->base.base,
-                    buf_sprintf("type '%s' has no member called '%s'",
-                        buf_ptr(&child_type->name), buf_ptr(field_name)));
-                return ira->codegen->invalid_inst_gen;
-            }
-        } else if (child_type->id == ZigTypeIdErrorUnion) {
-            if (buf_eql_str(field_name, "Payload")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_type(ira->codegen, child_type->data.error_union.payload_type),
-                    ira->codegen->builtin_types.entry_type,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else if (buf_eql_str(field_name, "ErrorSet")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_type(ira->codegen, child_type->data.error_union.err_set_type),
-                    ira->codegen->builtin_types.entry_type,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else {
-                ir_add_error(ira, &field_ptr_instruction->base.base,
-                    buf_sprintf("type '%s' has no member called '%s'",
-                        buf_ptr(&child_type->name), buf_ptr(field_name)));
-                return ira->codegen->invalid_inst_gen;
-            }
-        } else if (child_type->id == ZigTypeIdOptional) {
-            if (buf_eql_str(field_name, "Child")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_type(ira->codegen, child_type->data.maybe.child_type),
-                    ira->codegen->builtin_types.entry_type,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else {
-                ir_add_error(ira, &field_ptr_instruction->base.base,
-                    buf_sprintf("type '%s' has no member called '%s'",
-                        buf_ptr(&child_type->name), buf_ptr(field_name)));
-                return ira->codegen->invalid_inst_gen;
-            }
-        } else if (child_type->id == ZigTypeIdFn) {
-            if (buf_eql_str(field_name, "ReturnType")) {
-                if (child_type->data.fn.fn_type_id.return_type == nullptr) {
-                    // Return type can only ever be null, if the function is generic
-                    assert(child_type->data.fn.is_generic);
-
-                    ir_add_error(ira, &field_ptr_instruction->base.base,
-                        buf_sprintf("ReturnType has not been resolved because '%s' is generic", buf_ptr(&child_type->name)));
-                    return ira->codegen->invalid_inst_gen;
-                }
-
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_type(ira->codegen, child_type->data.fn.fn_type_id.return_type),
-                    ira->codegen->builtin_types.entry_type,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else if (buf_eql_str(field_name, "is_var_args")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_bool(ira->codegen, child_type->data.fn.fn_type_id.is_var_args),
-                    ira->codegen->builtin_types.entry_bool,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else if (buf_eql_str(field_name, "arg_count")) {
-                bool ptr_is_const = true;
-                bool ptr_is_volatile = false;
-                return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
-                    create_const_usize(ira->codegen, child_type->data.fn.fn_type_id.param_count),
-                    ira->codegen->builtin_types.entry_usize,
-                    ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
-            } else {
-                ir_add_error(ira, &field_ptr_instruction->base.base,
-                    buf_sprintf("type '%s' has no member called '%s'",
-                        buf_ptr(&child_type->name), buf_ptr(field_name)));
-                return ira->codegen->invalid_inst_gen;
-            }
         } else {
             ir_add_error(ira, &field_ptr_instruction->base.base,
-                buf_sprintf("type '%s' does not support field access", buf_ptr(&child_type->name)));
+                buf_sprintf("type '%s' does not support field access", buf_ptr(&container_type->name)));
             return ira->codegen->invalid_inst_gen;
         }
     } else if (field_ptr_instruction->initializing) {