zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit a2c47d2b0b0475b15a81067bf5d764ce6ae609b3 (tree)
parent 1bb30c5e228f4a5ebc42cc23e593ebad3bd6dbbe
Author: Tadeo Kondrak <me@tadeo.ca>
Date:   Sun, 30 Aug 2020 19:02:23 -0600

Remove @OpaqueType

Diffstat:
Msrc/all_types.hpp | 6------
Msrc/codegen.cpp | 1-
Msrc/ir.cpp | 29-----------------------------
Msrc/ir_print.cpp | 9---------
Mtest/compile_errors.zig | 2+-
Mtest/stage1/behavior/type.zig | 1-
6 files changed, 1 insertion(+), 47 deletions(-)

diff --git a/src/all_types.hpp b/src/all_types.hpp @@ -1809,7 +1809,6 @@ enum BuiltinFnId { BuiltinFnIdShrExact, BuiltinFnIdSetEvalBranchQuota, BuiltinFnIdAlignCast, - BuiltinFnIdOpaqueType, BuiltinFnIdThis, BuiltinFnIdSetAlignStack, BuiltinFnIdExport, @@ -2734,7 +2733,6 @@ enum IrInstSrcId { IrInstSrcIdImplicitCast, IrInstSrcIdResolveResult, IrInstSrcIdResetResult, - IrInstSrcIdOpaqueType, IrInstSrcIdSetAlignStack, IrInstSrcIdArgType, IrInstSrcIdExport, @@ -4234,10 +4232,6 @@ struct IrInstGenAlignCast { IrInstGen *target; }; -struct IrInstSrcOpaqueType { - IrInstSrc base; -}; - struct IrInstSrcSetAlignStack { IrInstSrc base; diff --git a/src/codegen.cpp b/src/codegen.cpp @@ -8699,7 +8699,6 @@ static void define_builtin_fns(CodeGen *g) { create_builtin_fn(g, BuiltinFnIdShrExact, "shrExact", 2); create_builtin_fn(g, BuiltinFnIdSetEvalBranchQuota, "setEvalBranchQuota", 1); create_builtin_fn(g, BuiltinFnIdAlignCast, "alignCast", 2); - create_builtin_fn(g, BuiltinFnIdOpaqueType, "OpaqueType", 0); create_builtin_fn(g, BuiltinFnIdSetAlignStack, "setAlignStack", 1); create_builtin_fn(g, BuiltinFnIdExport, "export", 2); create_builtin_fn(g, BuiltinFnIdErrorReturnTrace, "errorReturnTrace", 0); diff --git a/src/ir.cpp b/src/ir.cpp @@ -505,8 +505,6 @@ static void destroy_instruction_src(IrInstSrc *inst) { return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResolveResult *>(inst)); case IrInstSrcIdResetResult: return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResetResult *>(inst)); - case IrInstSrcIdOpaqueType: - return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcOpaqueType *>(inst)); case IrInstSrcIdSetAlignStack: return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcSetAlignStack *>(inst)); case IrInstSrcIdArgType: @@ -1532,10 +1530,6 @@ static constexpr IrInstSrcId ir_inst_id(IrInstSrcResetResult *) { return IrInstSrcIdResetResult; } -static constexpr IrInstSrcId ir_inst_id(IrInstSrcOpaqueType *) { - return IrInstSrcIdOpaqueType; -} - static constexpr IrInstSrcId ir_inst_id(IrInstSrcSetAlignStack *) { return IrInstSrcIdSetAlignStack; } @@ -4535,12 +4529,6 @@ static IrInstSrc *ir_build_reset_result(IrBuilderSrc *irb, Scope *scope, AstNode return &instruction->base; } -static IrInstSrc *ir_build_opaque_type(IrBuilderSrc *irb, Scope *scope, AstNode *source_node) { - IrInstSrcOpaqueType *instruction = ir_build_instruction<IrInstSrcOpaqueType>(irb, scope, source_node); - - return &instruction->base; -} - static IrInstSrc *ir_build_set_align_stack(IrBuilderSrc *irb, Scope *scope, AstNode *source_node, IrInstSrc *align_bytes) { @@ -7310,11 +7298,6 @@ static IrInstSrc *ir_gen_builtin_fn_call(IrBuilderSrc *irb, Scope *scope, AstNod IrInstSrc *align_cast = ir_build_align_cast_src(irb, scope, node, arg0_value, arg1_value); return ir_lval_wrap(irb, scope, align_cast, lval, result_loc); } - case BuiltinFnIdOpaqueType: - { - IrInstSrc *opaque_type = ir_build_opaque_type(irb, scope, node); - return ir_lval_wrap(irb, scope, opaque_type, lval, result_loc); - } case BuiltinFnIdThis: { IrInstSrc *this_inst = ir_gen_this(irb, scope, node); @@ -30263,15 +30246,6 @@ static IrInstGen *ir_analyze_instruction_align_cast(IrAnalyze *ira, IrInstSrcAli return result; } -static IrInstGen *ir_analyze_instruction_opaque_type(IrAnalyze *ira, IrInstSrcOpaqueType *instruction) { - Buf *bare_name = buf_alloc(); - Buf *full_name = get_anon_type_name(ira->codegen, ira->old_irb.exec, "opaque", - instruction->base.base.scope, instruction->base.base.source_node, bare_name); - ZigType *result_type = get_opaque_type(ira->codegen, instruction->base.base.scope, - instruction->base.base.source_node, buf_ptr(full_name), bare_name); - return ir_const_type(ira, &instruction->base.base, result_type); -} - static IrInstGen *ir_analyze_instruction_set_align_stack(IrAnalyze *ira, IrInstSrcSetAlignStack *instruction) { uint32_t align_bytes; IrInstGen *align_bytes_inst = instruction->align_bytes->child; @@ -31736,8 +31710,6 @@ static IrInstGen *ir_analyze_instruction_base(IrAnalyze *ira, IrInstSrc *instruc return ir_analyze_instruction_resolve_result(ira, (IrInstSrcResolveResult *)instruction); case IrInstSrcIdResetResult: return ir_analyze_instruction_reset_result(ira, (IrInstSrcResetResult *)instruction); - case IrInstSrcIdOpaqueType: - return ir_analyze_instruction_opaque_type(ira, (IrInstSrcOpaqueType *)instruction); case IrInstSrcIdSetAlignStack: return ir_analyze_instruction_set_align_stack(ira, (IrInstSrcSetAlignStack *)instruction); case IrInstSrcIdArgType: @@ -32181,7 +32153,6 @@ bool ir_inst_src_has_side_effects(IrInstSrc *instruction) { case IrInstSrcIdAlignCast: case IrInstSrcIdImplicitCast: case IrInstSrcIdResolveResult: - case IrInstSrcIdOpaqueType: case IrInstSrcIdArgType: case IrInstSrcIdTagType: case IrInstSrcIdErrorReturnTrace: diff --git a/src/ir_print.cpp b/src/ir_print.cpp @@ -306,8 +306,6 @@ const char* ir_inst_src_type_str(IrInstSrcId id) { return "SrcResolveResult"; case IrInstSrcIdResetResult: return "SrcResetResult"; - case IrInstSrcIdOpaqueType: - return "SrcOpaqueType"; case IrInstSrcIdSetAlignStack: return "SrcSetAlignStack"; case IrInstSrcIdArgType: @@ -2315,10 +2313,6 @@ static void ir_print_reset_result(IrPrintSrc *irp, IrInstSrcResetResult *instruc fprintf(irp->f, ")"); } -static void ir_print_opaque_type(IrPrintSrc *irp, IrInstSrcOpaqueType *instruction) { - fprintf(irp->f, "@OpaqueType()"); -} - static void ir_print_set_align_stack(IrPrintSrc *irp, IrInstSrcSetAlignStack *instruction) { fprintf(irp->f, "@setAlignStack("); ir_print_other_inst_src(irp, instruction->align_bytes); @@ -2911,9 +2905,6 @@ static void ir_print_inst_src(IrPrintSrc *irp, IrInstSrc *instruction, bool trai case IrInstSrcIdResetResult: ir_print_reset_result(irp, (IrInstSrcResetResult *)instruction); break; - case IrInstSrcIdOpaqueType: - ir_print_opaque_type(irp, (IrInstSrcOpaqueType *)instruction); - break; case IrInstSrcIdSetAlignStack: ir_print_set_align_stack(irp, (IrInstSrcSetAlignStack *)instruction); break; diff --git a/test/compile_errors.zig b/test/compile_errors.zig @@ -7394,7 +7394,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { }); cases.add("function parameter is opaque", - \\const FooType = @OpaqueType(); + \\const FooType = @Type(.Opaque); \\export fn entry1() void { \\ const someFuncPtr: fn (FooType) void = undefined; \\} diff --git a/test/stage1/behavior/type.zig b/test/stage1/behavior/type.zig @@ -190,7 +190,6 @@ test "Type.ErrorUnion" { } test "Type.Opaque" { - testing.expect(@OpaqueType() != @Type(.Opaque)); testing.expect(@Type(.Opaque) != @Type(.Opaque)); testing.expect(@typeInfo(@Type(.Opaque)) == .Opaque); }