| ... | @@ -448,6 +448,23 @@ test "Optional slice size is optimized" { | ... | @@ -448,6 +448,23 @@ test "Optional slice size is optimized" { |
| 448 | try expectEqualStrings(a.?, "hello"); | 448 | try expectEqualStrings(a.?, "hello"); |
| 449 | } | 449 | } |
| 450 | | 450 | |
| | 451 | test "Optional slice passed to function" { |
| | 452 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 453 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 454 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| | 455 | |
| | 456 | const S = struct { |
| | 457 | fn foo(a: ?[]const u8) !void { |
| | 458 | try std.testing.expectEqualStrings(a.?, "foo"); |
| | 459 | } |
| | 460 | fn bar(a: ?[]allowzero const u8) !void { |
| | 461 | try std.testing.expectEqualStrings(@ptrCast(a.?), "bar"); |
| | 462 | } |
| | 463 | }; |
| | 464 | try S.foo("foo"); |
| | 465 | try S.bar("bar"); |
| | 466 | } |
| | 467 | |
| 451 | test "peer type resolution in nested if expressions" { | 468 | test "peer type resolution in nested if expressions" { |
| 452 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 469 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 453 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 470 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |