mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
Remove @OpaqueType
This commit is contained in:
parent
1bb30c5e22
commit
a2c47d2b0b
6 changed files with 1 additions and 47 deletions
|
|
@ -1809,7 +1809,6 @@ enum BuiltinFnId {
|
||||||
BuiltinFnIdShrExact,
|
BuiltinFnIdShrExact,
|
||||||
BuiltinFnIdSetEvalBranchQuota,
|
BuiltinFnIdSetEvalBranchQuota,
|
||||||
BuiltinFnIdAlignCast,
|
BuiltinFnIdAlignCast,
|
||||||
BuiltinFnIdOpaqueType,
|
|
||||||
BuiltinFnIdThis,
|
BuiltinFnIdThis,
|
||||||
BuiltinFnIdSetAlignStack,
|
BuiltinFnIdSetAlignStack,
|
||||||
BuiltinFnIdExport,
|
BuiltinFnIdExport,
|
||||||
|
|
@ -2734,7 +2733,6 @@ enum IrInstSrcId {
|
||||||
IrInstSrcIdImplicitCast,
|
IrInstSrcIdImplicitCast,
|
||||||
IrInstSrcIdResolveResult,
|
IrInstSrcIdResolveResult,
|
||||||
IrInstSrcIdResetResult,
|
IrInstSrcIdResetResult,
|
||||||
IrInstSrcIdOpaqueType,
|
|
||||||
IrInstSrcIdSetAlignStack,
|
IrInstSrcIdSetAlignStack,
|
||||||
IrInstSrcIdArgType,
|
IrInstSrcIdArgType,
|
||||||
IrInstSrcIdExport,
|
IrInstSrcIdExport,
|
||||||
|
|
@ -4234,10 +4232,6 @@ struct IrInstGenAlignCast {
|
||||||
IrInstGen *target;
|
IrInstGen *target;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct IrInstSrcOpaqueType {
|
|
||||||
IrInstSrc base;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct IrInstSrcSetAlignStack {
|
struct IrInstSrcSetAlignStack {
|
||||||
IrInstSrc base;
|
IrInstSrc base;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8699,7 +8699,6 @@ static void define_builtin_fns(CodeGen *g) {
|
||||||
create_builtin_fn(g, BuiltinFnIdShrExact, "shrExact", 2);
|
create_builtin_fn(g, BuiltinFnIdShrExact, "shrExact", 2);
|
||||||
create_builtin_fn(g, BuiltinFnIdSetEvalBranchQuota, "setEvalBranchQuota", 1);
|
create_builtin_fn(g, BuiltinFnIdSetEvalBranchQuota, "setEvalBranchQuota", 1);
|
||||||
create_builtin_fn(g, BuiltinFnIdAlignCast, "alignCast", 2);
|
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, BuiltinFnIdSetAlignStack, "setAlignStack", 1);
|
||||||
create_builtin_fn(g, BuiltinFnIdExport, "export", 2);
|
create_builtin_fn(g, BuiltinFnIdExport, "export", 2);
|
||||||
create_builtin_fn(g, BuiltinFnIdErrorReturnTrace, "errorReturnTrace", 0);
|
create_builtin_fn(g, BuiltinFnIdErrorReturnTrace, "errorReturnTrace", 0);
|
||||||
|
|
|
||||||
29
src/ir.cpp
29
src/ir.cpp
|
|
@ -505,8 +505,6 @@ static void destroy_instruction_src(IrInstSrc *inst) {
|
||||||
return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResolveResult *>(inst));
|
return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResolveResult *>(inst));
|
||||||
case IrInstSrcIdResetResult:
|
case IrInstSrcIdResetResult:
|
||||||
return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResetResult *>(inst));
|
return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcResetResult *>(inst));
|
||||||
case IrInstSrcIdOpaqueType:
|
|
||||||
return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcOpaqueType *>(inst));
|
|
||||||
case IrInstSrcIdSetAlignStack:
|
case IrInstSrcIdSetAlignStack:
|
||||||
return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcSetAlignStack *>(inst));
|
return heap::c_allocator.destroy(reinterpret_cast<IrInstSrcSetAlignStack *>(inst));
|
||||||
case IrInstSrcIdArgType:
|
case IrInstSrcIdArgType:
|
||||||
|
|
@ -1532,10 +1530,6 @@ static constexpr IrInstSrcId ir_inst_id(IrInstSrcResetResult *) {
|
||||||
return IrInstSrcIdResetResult;
|
return IrInstSrcIdResetResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
static constexpr IrInstSrcId ir_inst_id(IrInstSrcOpaqueType *) {
|
|
||||||
return IrInstSrcIdOpaqueType;
|
|
||||||
}
|
|
||||||
|
|
||||||
static constexpr IrInstSrcId ir_inst_id(IrInstSrcSetAlignStack *) {
|
static constexpr IrInstSrcId ir_inst_id(IrInstSrcSetAlignStack *) {
|
||||||
return IrInstSrcIdSetAlignStack;
|
return IrInstSrcIdSetAlignStack;
|
||||||
}
|
}
|
||||||
|
|
@ -4535,12 +4529,6 @@ static IrInstSrc *ir_build_reset_result(IrBuilderSrc *irb, Scope *scope, AstNode
|
||||||
return &instruction->base;
|
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,
|
static IrInstSrc *ir_build_set_align_stack(IrBuilderSrc *irb, Scope *scope, AstNode *source_node,
|
||||||
IrInstSrc *align_bytes)
|
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);
|
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);
|
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:
|
case BuiltinFnIdThis:
|
||||||
{
|
{
|
||||||
IrInstSrc *this_inst = ir_gen_this(irb, scope, node);
|
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;
|
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) {
|
static IrInstGen *ir_analyze_instruction_set_align_stack(IrAnalyze *ira, IrInstSrcSetAlignStack *instruction) {
|
||||||
uint32_t align_bytes;
|
uint32_t align_bytes;
|
||||||
IrInstGen *align_bytes_inst = instruction->align_bytes->child;
|
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);
|
return ir_analyze_instruction_resolve_result(ira, (IrInstSrcResolveResult *)instruction);
|
||||||
case IrInstSrcIdResetResult:
|
case IrInstSrcIdResetResult:
|
||||||
return ir_analyze_instruction_reset_result(ira, (IrInstSrcResetResult *)instruction);
|
return ir_analyze_instruction_reset_result(ira, (IrInstSrcResetResult *)instruction);
|
||||||
case IrInstSrcIdOpaqueType:
|
|
||||||
return ir_analyze_instruction_opaque_type(ira, (IrInstSrcOpaqueType *)instruction);
|
|
||||||
case IrInstSrcIdSetAlignStack:
|
case IrInstSrcIdSetAlignStack:
|
||||||
return ir_analyze_instruction_set_align_stack(ira, (IrInstSrcSetAlignStack *)instruction);
|
return ir_analyze_instruction_set_align_stack(ira, (IrInstSrcSetAlignStack *)instruction);
|
||||||
case IrInstSrcIdArgType:
|
case IrInstSrcIdArgType:
|
||||||
|
|
@ -32181,7 +32153,6 @@ bool ir_inst_src_has_side_effects(IrInstSrc *instruction) {
|
||||||
case IrInstSrcIdAlignCast:
|
case IrInstSrcIdAlignCast:
|
||||||
case IrInstSrcIdImplicitCast:
|
case IrInstSrcIdImplicitCast:
|
||||||
case IrInstSrcIdResolveResult:
|
case IrInstSrcIdResolveResult:
|
||||||
case IrInstSrcIdOpaqueType:
|
|
||||||
case IrInstSrcIdArgType:
|
case IrInstSrcIdArgType:
|
||||||
case IrInstSrcIdTagType:
|
case IrInstSrcIdTagType:
|
||||||
case IrInstSrcIdErrorReturnTrace:
|
case IrInstSrcIdErrorReturnTrace:
|
||||||
|
|
|
||||||
|
|
@ -306,8 +306,6 @@ const char* ir_inst_src_type_str(IrInstSrcId id) {
|
||||||
return "SrcResolveResult";
|
return "SrcResolveResult";
|
||||||
case IrInstSrcIdResetResult:
|
case IrInstSrcIdResetResult:
|
||||||
return "SrcResetResult";
|
return "SrcResetResult";
|
||||||
case IrInstSrcIdOpaqueType:
|
|
||||||
return "SrcOpaqueType";
|
|
||||||
case IrInstSrcIdSetAlignStack:
|
case IrInstSrcIdSetAlignStack:
|
||||||
return "SrcSetAlignStack";
|
return "SrcSetAlignStack";
|
||||||
case IrInstSrcIdArgType:
|
case IrInstSrcIdArgType:
|
||||||
|
|
@ -2315,10 +2313,6 @@ static void ir_print_reset_result(IrPrintSrc *irp, IrInstSrcResetResult *instruc
|
||||||
fprintf(irp->f, ")");
|
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) {
|
static void ir_print_set_align_stack(IrPrintSrc *irp, IrInstSrcSetAlignStack *instruction) {
|
||||||
fprintf(irp->f, "@setAlignStack(");
|
fprintf(irp->f, "@setAlignStack(");
|
||||||
ir_print_other_inst_src(irp, instruction->align_bytes);
|
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:
|
case IrInstSrcIdResetResult:
|
||||||
ir_print_reset_result(irp, (IrInstSrcResetResult *)instruction);
|
ir_print_reset_result(irp, (IrInstSrcResetResult *)instruction);
|
||||||
break;
|
break;
|
||||||
case IrInstSrcIdOpaqueType:
|
|
||||||
ir_print_opaque_type(irp, (IrInstSrcOpaqueType *)instruction);
|
|
||||||
break;
|
|
||||||
case IrInstSrcIdSetAlignStack:
|
case IrInstSrcIdSetAlignStack:
|
||||||
ir_print_set_align_stack(irp, (IrInstSrcSetAlignStack *)instruction);
|
ir_print_set_align_stack(irp, (IrInstSrcSetAlignStack *)instruction);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -7394,7 +7394,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
|
||||||
});
|
});
|
||||||
|
|
||||||
cases.add("function parameter is opaque",
|
cases.add("function parameter is opaque",
|
||||||
\\const FooType = @OpaqueType();
|
\\const FooType = @Type(.Opaque);
|
||||||
\\export fn entry1() void {
|
\\export fn entry1() void {
|
||||||
\\ const someFuncPtr: fn (FooType) void = undefined;
|
\\ const someFuncPtr: fn (FooType) void = undefined;
|
||||||
\\}
|
\\}
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,6 @@ test "Type.ErrorUnion" {
|
||||||
}
|
}
|
||||||
|
|
||||||
test "Type.Opaque" {
|
test "Type.Opaque" {
|
||||||
testing.expect(@OpaqueType() != @Type(.Opaque));
|
|
||||||
testing.expect(@Type(.Opaque) != @Type(.Opaque));
|
testing.expect(@Type(.Opaque) != @Type(.Opaque));
|
||||||
testing.expect(@typeInfo(@Type(.Opaque)) == .Opaque);
|
testing.expect(@typeInfo(@Type(.Opaque)) == .Opaque);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue