diff --git a/src/AstGen.zig b/src/AstGen.zig index 5994ca0d7f..c3829d31e1 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -1825,7 +1825,6 @@ fn unusedResultExpr(gz: *GenZir, scope: *Scope, statement: ast.Node.Index) Inner .int_big, .float, .float128, - .intcast, .int_type, .is_non_null, .is_null, @@ -1837,7 +1836,6 @@ fn unusedResultExpr(gz: *GenZir, scope: *Scope, statement: ast.Node.Index) Inner .mul, .mulwrap, .param_type, - .ptrtoint, .ref, .shl, .shr, @@ -2004,7 +2002,6 @@ fn unusedResultExpr(gz: *GenZir, scope: *Scope, statement: ast.Node.Index) Inner .condbr_inline, .compile_error, .ret_node, - .ret_tok, .ret_coerce, .@"unreachable", .store, diff --git a/src/Sema.zig b/src/Sema.zig index e8f413c7e8..52169e0b4a 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -206,7 +206,6 @@ pub fn analyzeBody( .float => try sema.zirFloat(block, inst), .float128 => try sema.zirFloat128(block, inst), .int_type => try sema.zirIntType(block, inst), - .intcast => try sema.zirIntcast(block, inst), .is_err => try sema.zirIsErr(block, inst), .is_err_ptr => try sema.zirIsErrPtr(block, inst), .is_non_null => try sema.zirIsNull(block, inst, true), @@ -225,7 +224,6 @@ pub fn analyzeBody( .param_type => try sema.zirParamType(block, inst), .ptr_type => try sema.zirPtrType(block, inst), .ptr_type_simple => try sema.zirPtrTypeSimple(block, inst), - .ptrtoint => try sema.zirPtrtoint(block, inst), .ref => try sema.zirRef(block, inst), .shl => try sema.zirShl(block, inst), .shr => try sema.zirShr(block, inst), @@ -369,7 +367,6 @@ pub fn analyzeBody( .compile_error => return sema.zirCompileError(block, inst), .ret_coerce => return sema.zirRetTok(block, inst, true), .ret_node => return sema.zirRetNode(block, inst), - .ret_tok => return sema.zirRetTok(block, inst, false), .@"unreachable" => return sema.zirUnreachable(block, inst), .repeat => return sema.zirRepeat(block, inst), .panic => return sema.zirPanic(block, inst), @@ -2860,7 +2857,7 @@ fn analyzeAs( return sema.coerce(block, dest_type, operand, src); } -fn zirPtrtoint(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { +fn zirPtrToInt(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { const tracy = trace(@src()); defer tracy.end(); @@ -2936,7 +2933,7 @@ fn zirFieldPtrNamed(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) Inne return sema.namedFieldPtr(block, src, object_ptr, field_name, field_name_src); } -fn zirIntcast(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { +fn zirIntCast(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { const tracy = trace(@src()); defer tracy.end(); @@ -5161,12 +5158,6 @@ fn zirFrameAddress( return sema.mod.fail(&block.base, src, "TODO: Sema.zirFrameAddress", .{}); } -fn zirPtrToInt(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { - const inst_data = sema.code.instructions.items(.data)[inst].un_node; - const src = inst_data.src(); - return sema.mod.fail(&block.base, src, "TODO: Sema.zirPtrToInt", .{}); -} - fn zirAlignOf(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { const inst_data = sema.code.instructions.items(.data)[inst].un_node; const src = inst_data.src(); @@ -5245,12 +5236,6 @@ fn zirIntToPtr(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerErro return sema.mod.fail(&block.base, src, "TODO: Sema.zirIntToPtr", .{}); } -fn zirIntCast(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { - const inst_data = sema.code.instructions.items(.data)[inst].pl_node; - const src = inst_data.src(); - return sema.mod.fail(&block.base, src, "TODO: Sema.zirIntCast", .{}); -} - fn zirErrSetCast(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) InnerError!*Inst { const inst_data = sema.code.instructions.items(.data)[inst].pl_node; const src = inst_data.src(); diff --git a/src/Zir.zig b/src/Zir.zig index d2a520a43e..2e9b808996 100644 --- a/src/Zir.zig +++ b/src/Zir.zig @@ -384,11 +384,6 @@ pub const Inst = struct { /// A float literal that fits in a f128. Uses the `pl_node` union value. /// Payload is `Float128`. float128, - /// Convert an integer value to another integer type, asserting that the destination type - /// can hold the same mathematical value. - /// Uses the `pl_node` field. AST is the `@intCast` syntax. - /// Payload is `Bin` with lhs as the dest type, rhs the operand. - intcast, /// Make an integer type out of signedness and bit count. /// Payload is `int_type` int_type, @@ -445,9 +440,6 @@ pub const Inst = struct { /// is not in a position where it must create an invalid type. /// Uses the `param_type` union field. param_type, - /// Convert a pointer to a `usize` integer. - /// Uses the `un_node` field. The AST node is the builtin fn call node. - ptrtoint, /// Turns an R-Value into a const L-Value. In other words, it takes a value, /// stores it in a memory location, and returns a const pointer to it. If the value /// is `comptime`, the memory location is global static constant data. Otherwise, @@ -464,9 +456,7 @@ pub const Inst = struct { /// Includes an operand as the return value. /// Includes a token source location. /// Uses the `un_tok` union field. - ret_tok, - /// Same as `ret_tok` except the operand needs to get coerced to the function's - /// return type. + /// The operand needs to get coerced to the function's return type. ret_coerce, /// Create a pointer type that does not have a sentinel, alignment, or bit range specified. /// Uses the `ptr_type_simple` union field. @@ -712,6 +702,7 @@ pub const Inst = struct { shl_with_overflow, /// Implement builtin `@ptrToInt`. Uses `un_node`. + /// Convert a pointer to a `usize` integer. ptr_to_int, /// Implement builtin `@errToInt`. Uses `un_node`. error_to_int, @@ -801,6 +792,8 @@ pub const Inst = struct { float_cast, /// Implements the `@intCast` builtin. /// Uses `pl_node` with payload `Bin`. `lhs` is dest type, `rhs` is operand. + /// Convert an integer value to another integer type, asserting that the destination type + /// can hold the same mathematical value. int_cast, /// Implements the `@errSetCast` builtin. /// Uses `pl_node` with payload `Bin`. `lhs` is dest type, `rhs` is operand. @@ -1030,7 +1023,6 @@ pub const Inst = struct { .int_big, .float, .float128, - .intcast, .int_type, .is_non_null, .is_null, @@ -1042,7 +1034,6 @@ pub const Inst = struct { .mul, .mulwrap, .param_type, - .ptrtoint, .ref, .shl, .shr, @@ -1202,7 +1193,6 @@ pub const Inst = struct { .condbr_inline, .compile_error, .ret_node, - .ret_tok, .ret_coerce, .@"unreachable", .repeat, @@ -2341,7 +2331,6 @@ const Writer = struct { .coerce_result_ptr, .elem_ptr, .elem_val, - .intcast, .store, .store_to_block_ptr, .store_to_inferred_ptr, @@ -2362,7 +2351,6 @@ const Writer = struct { .load, .ensure_result_used, .ensure_result_non_error, - .ptrtoint, .ret_node, .resolve_inferred_alloc, .optional_type, @@ -2432,7 +2420,6 @@ const Writer = struct { => try self.writeUnNode(stream, inst), .ref, - .ret_tok, .ret_coerce, .ensure_err_payload_void, => try self.writeUnTok(stream, inst),