authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-09-03 16:49:20+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-09-03 16:49:20+03:00
log4eeeda0f52e6f7a6da53c11930cfd3cb714e4df6
tree204844a41b9252f588ab690e3443ddf2804522de
parentfb3c5b84ede6fa48949c8069bf735ac67ec21091
signature Commit is signed but in an unrecognized format.

remove deprecated fields from types


2 files changed, 2 insertions(+), 160 deletions(-)

src/analyze.cpp+1-1
......@@ -1810,7 +1810,7 @@ Error type_allowed_in_extern(CodeGen *g, ZigType *type_entry, bool *result) {
18101810ZigType *get_auto_err_set_type(CodeGen *g, ZigFn *fn_entry) {
18111811 ZigType *err_set_type = new_type_table_entry(ZigTypeIdErrorSet);
18121812 buf_resize(&err_set_type->name, 0);
1813 buf_appendf(&err_set_type->name, "@TypeOf(%s).ReturnType.ErrorSet", buf_ptr(&fn_entry->symbol_name));
1813 buf_appendf(&err_set_type->name, "@typeInfo(@typeInfo(@TypeOf(%s)).Fn.return_type.?).ErrorUnion.error_set", buf_ptr(&fn_entry->symbol_name));
18141814 err_set_type->data.error_set.err_count = 0;
18151815 err_set_type->data.error_set.errors = nullptr;
18161816 err_set_type->data.error_set.infer_fn = fn_entry;
src/ir.cpp+1-159
......@@ -22835,167 +22835,9 @@ static IrInstGen *ir_analyze_instruction_field_ptr(IrAnalyze *ira, IrInstSrcFiel
2283522835 bool ptr_is_volatile = false;
2283622836 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base, const_val,
2283722837 err_set_type, ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22838 } else if (child_type->id == ZigTypeIdInt) {
22839 if (buf_eql_str(field_name, "bit_count")) {
22840 bool ptr_is_const = true;
22841 bool ptr_is_volatile = false;
22842 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22843 create_const_unsigned_negative(ira->codegen, ira->codegen->builtin_types.entry_num_lit_int,
22844 child_type->data.integral.bit_count, false),
22845 ira->codegen->builtin_types.entry_num_lit_int,
22846 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22847 } else if (buf_eql_str(field_name, "is_signed")) {
22848 bool ptr_is_const = true;
22849 bool ptr_is_volatile = false;
22850 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22851 create_const_bool(ira->codegen, child_type->data.integral.is_signed),
22852 ira->codegen->builtin_types.entry_bool,
22853 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22854 } else {
22855 ir_add_error(ira, &field_ptr_instruction->base.base,
22856 buf_sprintf("type '%s' has no member called '%s'",
22857 buf_ptr(&child_type->name), buf_ptr(field_name)));
22858 return ira->codegen->invalid_inst_gen;
22859 }
22860 } else if (child_type->id == ZigTypeIdFloat) {
22861 if (buf_eql_str(field_name, "bit_count")) {
22862 bool ptr_is_const = true;
22863 bool ptr_is_volatile = false;
22864 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22865 create_const_unsigned_negative(ira->codegen, ira->codegen->builtin_types.entry_num_lit_int,
22866 child_type->data.floating.bit_count, false),
22867 ira->codegen->builtin_types.entry_num_lit_int,
22868 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22869 } else {
22870 ir_add_error(ira, &field_ptr_instruction->base.base,
22871 buf_sprintf("type '%s' has no member called '%s'",
22872 buf_ptr(&child_type->name), buf_ptr(field_name)));
22873 return ira->codegen->invalid_inst_gen;
22874 }
22875 } else if (child_type->id == ZigTypeIdPointer) {
22876 if (buf_eql_str(field_name, "Child")) {
22877 bool ptr_is_const = true;
22878 bool ptr_is_volatile = false;
22879 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22880 create_const_type(ira->codegen, child_type->data.pointer.child_type),
22881 ira->codegen->builtin_types.entry_type,
22882 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22883 } else if (buf_eql_str(field_name, "alignment")) {
22884 bool ptr_is_const = true;
22885 bool ptr_is_volatile = false;
22886 if ((err = type_resolve(ira->codegen, child_type->data.pointer.child_type,
22887 ResolveStatusAlignmentKnown)))
22888 {
22889 return ira->codegen->invalid_inst_gen;
22890 }
22891 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22892 create_const_unsigned_negative(ira->codegen, ira->codegen->builtin_types.entry_num_lit_int,
22893 get_ptr_align(ira->codegen, child_type), false),
22894 ira->codegen->builtin_types.entry_num_lit_int,
22895 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22896 } else {
22897 ir_add_error(ira, &field_ptr_instruction->base.base,
22898 buf_sprintf("type '%s' has no member called '%s'",
22899 buf_ptr(&child_type->name), buf_ptr(field_name)));
22900 return ira->codegen->invalid_inst_gen;
22901 }
22902 } else if (child_type->id == ZigTypeIdArray) {
22903 if (buf_eql_str(field_name, "Child")) {
22904 bool ptr_is_const = true;
22905 bool ptr_is_volatile = false;
22906 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22907 create_const_type(ira->codegen, child_type->data.array.child_type),
22908 ira->codegen->builtin_types.entry_type,
22909 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22910 } else if (buf_eql_str(field_name, "len")) {
22911 bool ptr_is_const = true;
22912 bool ptr_is_volatile = false;
22913 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22914 create_const_unsigned_negative(ira->codegen, ira->codegen->builtin_types.entry_num_lit_int,
22915 child_type->data.array.len, false),
22916 ira->codegen->builtin_types.entry_num_lit_int,
22917 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22918 } else {
22919 ir_add_error(ira, &field_ptr_instruction->base.base,
22920 buf_sprintf("type '%s' has no member called '%s'",
22921 buf_ptr(&child_type->name), buf_ptr(field_name)));
22922 return ira->codegen->invalid_inst_gen;
22923 }
22924 } else if (child_type->id == ZigTypeIdErrorUnion) {
22925 if (buf_eql_str(field_name, "Payload")) {
22926 bool ptr_is_const = true;
22927 bool ptr_is_volatile = false;
22928 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22929 create_const_type(ira->codegen, child_type->data.error_union.payload_type),
22930 ira->codegen->builtin_types.entry_type,
22931 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22932 } else if (buf_eql_str(field_name, "ErrorSet")) {
22933 bool ptr_is_const = true;
22934 bool ptr_is_volatile = false;
22935 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22936 create_const_type(ira->codegen, child_type->data.error_union.err_set_type),
22937 ira->codegen->builtin_types.entry_type,
22938 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22939 } else {
22940 ir_add_error(ira, &field_ptr_instruction->base.base,
22941 buf_sprintf("type '%s' has no member called '%s'",
22942 buf_ptr(&child_type->name), buf_ptr(field_name)));
22943 return ira->codegen->invalid_inst_gen;
22944 }
22945 } else if (child_type->id == ZigTypeIdOptional) {
22946 if (buf_eql_str(field_name, "Child")) {
22947 bool ptr_is_const = true;
22948 bool ptr_is_volatile = false;
22949 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22950 create_const_type(ira->codegen, child_type->data.maybe.child_type),
22951 ira->codegen->builtin_types.entry_type,
22952 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22953 } else {
22954 ir_add_error(ira, &field_ptr_instruction->base.base,
22955 buf_sprintf("type '%s' has no member called '%s'",
22956 buf_ptr(&child_type->name), buf_ptr(field_name)));
22957 return ira->codegen->invalid_inst_gen;
22958 }
22959 } else if (child_type->id == ZigTypeIdFn) {
22960 if (buf_eql_str(field_name, "ReturnType")) {
22961 if (child_type->data.fn.fn_type_id.return_type == nullptr) {
22962 // Return type can only ever be null, if the function is generic
22963 assert(child_type->data.fn.is_generic);
22964
22965 ir_add_error(ira, &field_ptr_instruction->base.base,
22966 buf_sprintf("ReturnType has not been resolved because '%s' is generic", buf_ptr(&child_type->name)));
22967 return ira->codegen->invalid_inst_gen;
22968 }
22969
22970 bool ptr_is_const = true;
22971 bool ptr_is_volatile = false;
22972 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22973 create_const_type(ira->codegen, child_type->data.fn.fn_type_id.return_type),
22974 ira->codegen->builtin_types.entry_type,
22975 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22976 } else if (buf_eql_str(field_name, "is_var_args")) {
22977 bool ptr_is_const = true;
22978 bool ptr_is_volatile = false;
22979 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22980 create_const_bool(ira->codegen, child_type->data.fn.fn_type_id.is_var_args),
22981 ira->codegen->builtin_types.entry_bool,
22982 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22983 } else if (buf_eql_str(field_name, "arg_count")) {
22984 bool ptr_is_const = true;
22985 bool ptr_is_volatile = false;
22986 return ir_get_const_ptr(ira, &field_ptr_instruction->base.base,
22987 create_const_usize(ira->codegen, child_type->data.fn.fn_type_id.param_count),
22988 ira->codegen->builtin_types.entry_usize,
22989 ConstPtrMutComptimeConst, ptr_is_const, ptr_is_volatile, 0);
22990 } else {
22991 ir_add_error(ira, &field_ptr_instruction->base.base,
22992 buf_sprintf("type '%s' has no member called '%s'",
22993 buf_ptr(&child_type->name), buf_ptr(field_name)));
22994 return ira->codegen->invalid_inst_gen;
22995 }
2299622838 } else {
2299722839 ir_add_error(ira, &field_ptr_instruction->base.base,
22998 buf_sprintf("type '%s' does not support field access", buf_ptr(&child_type->name)));
22840 buf_sprintf("type '%s' does not support field access", buf_ptr(&container_type->name)));
2299922841 return ira->codegen->invalid_inst_gen;
2300022842 }
2300122843 } else if (field_ptr_instruction->initializing) {