| author | |
| committer | |
| log | e36680d3bd08fceb3e976edeafae60ce6d577342 |
| tree | 60ca93229fabd17136dd6aa2389ba9d2c95ed6b7 |
| parent | b588a803bf4493d2fd1892fe172b9ce8cfb0ca30 |
| signature | Commit is signed but in an unrecognized format. |
3 files changed, 20 insertions(+), 20 deletions(-)
src/ir.cpp+1-1| ... | @@ -8647,7 +8647,7 @@ static ConstExprValue *ir_exec_const_result(CodeGen *codegen, IrExecutable *exec | ... | @@ -8647,7 +8647,7 @@ static ConstExprValue *ir_exec_const_result(CodeGen *codegen, IrExecutable *exec |
| 8647 | return &codegen->invalid_instruction->value; | 8647 | return &codegen->invalid_instruction->value; |
| 8648 | } | 8648 | } |
| 8649 | return &value->value; | 8649 | return &value->value; |
| 8650 | } else if (ir_has_side_effects(instruction)) { | 8650 | } else if (ir_has_side_effects(instruction) && !instr_is_comptime(instruction)) { |
| 8651 | exec_add_error_node(codegen, exec, instruction->source_node, | 8651 | exec_add_error_node(codegen, exec, instruction->source_node, |
| 8652 | buf_sprintf("unable to evaluate constant expression")); | 8652 | buf_sprintf("unable to evaluate constant expression")); |
| 8653 | return &codegen->invalid_instruction->value; | 8653 | return &codegen->invalid_instruction->value; |
test/stage1/behavior.zig+1-1| ... | @@ -40,7 +40,7 @@ comptime { | ... | @@ -40,7 +40,7 @@ comptime { |
| 40 | _ = @import("behavior/bugs/920.zig"); | 40 | _ = @import("behavior/bugs/920.zig"); |
| 41 | _ = @import("behavior/byval_arg_var.zig"); | 41 | _ = @import("behavior/byval_arg_var.zig"); |
| 42 | //_ = @import("behavior/cancel.zig"); | 42 | //_ = @import("behavior/cancel.zig"); |
| 43 | _ = @import("behavior/cast.zig"); // TODO | 43 | _ = @import("behavior/cast.zig"); |
| 44 | _ = @import("behavior/const_slice_child.zig"); | 44 | _ = @import("behavior/const_slice_child.zig"); |
| 45 | //_ = @import("behavior/coroutine_await_struct.zig"); | 45 | //_ = @import("behavior/coroutine_await_struct.zig"); |
| 46 | //_ = @import("behavior/coroutines.zig"); | 46 | //_ = @import("behavior/coroutines.zig"); |
test/stage1/behavior/cast.zig+18-18| ... | @@ -165,10 +165,10 @@ fn castToOptionalSlice() ?[]const u8 { | ... | @@ -165,10 +165,10 @@ fn castToOptionalSlice() ?[]const u8 { |
| 165 | return "hi"; | 165 | return "hi"; |
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | //test "implicitly cast from [0]T to anyerror![]T" { | 168 | test "implicitly cast from [0]T to anyerror![]T" { |
| 169 | // testCastZeroArrayToErrSliceMut(); | 169 | testCastZeroArrayToErrSliceMut(); |
| 170 | // comptime testCastZeroArrayToErrSliceMut(); | 170 | comptime testCastZeroArrayToErrSliceMut(); |
| 171 | //} | 171 | } |
| 172 | 172 | ||
| 173 | fn testCastZeroArrayToErrSliceMut() void { | 173 | fn testCastZeroArrayToErrSliceMut() void { |
| 174 | expect((gimmeErrOrSlice() catch unreachable).len == 0); | 174 | expect((gimmeErrOrSlice() catch unreachable).len == 0); |
| ... | @@ -178,20 +178,20 @@ fn gimmeErrOrSlice() anyerror![]u8 { | ... | @@ -178,20 +178,20 @@ fn gimmeErrOrSlice() anyerror![]u8 { |
| 178 | return [_]u8{}; | 178 | return [_]u8{}; |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | //test "peer type resolution: [0]u8, []const u8, and anyerror![]u8" { | 181 | test "peer type resolution: [0]u8, []const u8, and anyerror![]u8" { |
| 182 | // { | 182 | { |
| 183 | // var data = "hi"; | 183 | var data = "hi"; |
| 184 | // const slice = data[0..]; | 184 | const slice = data[0..]; |
| 185 | // expect((try peerTypeEmptyArrayAndSliceAndError(true, slice)).len == 0); | 185 | expect((try peerTypeEmptyArrayAndSliceAndError(true, slice)).len == 0); |
| 186 | // expect((try peerTypeEmptyArrayAndSliceAndError(false, slice)).len == 1); | 186 | expect((try peerTypeEmptyArrayAndSliceAndError(false, slice)).len == 1); |
| 187 | // } | 187 | } |
| 188 | // comptime { | 188 | comptime { |
| 189 | // var data = "hi"; | 189 | var data = "hi"; |
| 190 | // const slice = data[0..]; | 190 | const slice = data[0..]; |
| 191 | // expect((try peerTypeEmptyArrayAndSliceAndError(true, slice)).len == 0); | 191 | expect((try peerTypeEmptyArrayAndSliceAndError(true, slice)).len == 0); |
| 192 | // expect((try peerTypeEmptyArrayAndSliceAndError(false, slice)).len == 1); | 192 | expect((try peerTypeEmptyArrayAndSliceAndError(false, slice)).len == 1); |
| 193 | // } | 193 | } |
| 194 | //} | 194 | } |
| 195 | fn peerTypeEmptyArrayAndSliceAndError(a: bool, slice: []u8) anyerror![]u8 { | 195 | fn peerTypeEmptyArrayAndSliceAndError(a: bool, slice: []u8) anyerror![]u8 { |
| 196 | if (a) { | 196 | if (a) { |
| 197 | return [_]u8{}; | 197 | return [_]u8{}; |