aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-04-21 16:46:33 -0400
committerAndrew Kelley <superjoe30@gmail.com>2017-04-21 16:46:33 -0400
commit0cce115476628ad1bb266309225efa5714d56321 (patch)
tree47b49a58d1ff23ed74ea599961b5f9bc92e6fadc /std
parentd5346d7a8045549819abeb331d775aa2a10ca53b (diff)
downloadzig-0cce115476628ad1bb266309225efa5714d56321.tar.gz
zig-0cce115476628ad1bb266309225efa5714d56321.zip
update syntax for try and nullable unwrapping
closes #285
Diffstat (limited to 'std')
-rw-r--r--std/buf_map.zig2
-rw-r--r--std/build.zig24
-rw-r--r--std/hash_map.zig2
-rw-r--r--std/os/child_process.zig13
-rw-r--r--std/os/index.zig6
-rw-r--r--std/special/build_runner.zig2
-rw-r--r--std/special/compiler_rt.zig18
7 files changed, 34 insertions, 33 deletions
diff --git a/std/buf_map.zig b/std/buf_map.zig
index 3f7787a7c3..db9fd15205 100644
--- a/std/buf_map.zig
+++ b/std/buf_map.zig
@@ -28,7 +28,7 @@ pub const BufMap = struct {
}
pub fn set(self: &BufMap, key: []const u8, value: []const u8) -> %void {
- if (const entry ?= self.hash_map.get(key)) {
+ test (self.hash_map.get(key)) |entry| {
const value_copy = %return self.copy(value);
%defer self.free(value_copy);
%return self.hash_map.put(key, value_copy);
diff --git a/std/build.zig b/std/build.zig
index 8d24af177f..e83a458d32 100644
--- a/std/build.zig
+++ b/std/build.zig
@@ -309,7 +309,7 @@ pub const Builder = struct {
}
fn processNixOSEnvVars(self: &Builder) {
- if (const nix_cflags_compile ?= os.getEnv("NIX_CFLAGS_COMPILE")) {
+ test (os.getEnv("NIX_CFLAGS_COMPILE")) |nix_cflags_compile| {
var it = mem.split(nix_cflags_compile, ' ');
while (true) {
const word = it.next() ?? break;
@@ -325,7 +325,7 @@ pub const Builder = struct {
}
}
}
- if (const nix_ldflags ?= os.getEnv("NIX_LDFLAGS")) {
+ test (os.getEnv("NIX_LDFLAGS")) |nix_ldflags| {
var it = mem.split(nix_ldflags, ' ');
while (true) {
const word = it.next() ?? break;
@@ -353,7 +353,7 @@ pub const Builder = struct {
.type_id = type_id,
.description = description,
};
- if (const _ ?= %%self.available_options_map.put(name, available_option)) {
+ test (%%self.available_options_map.put(name, available_option)) {
debug.panic("Option '{}' declared twice", name);
}
%%self.available_options_list.append(available_option);
@@ -410,11 +410,11 @@ pub const Builder = struct {
}
pub fn addUserInputOption(self: &Builder, name: []const u8, value: []const u8) -> bool {
- if (var prev_value ?= %%self.user_input_options.put(name, UserInputOption {
+ test (%%self.user_input_options.put(name, UserInputOption {
.name = name,
.value = UserValue.Scalar { value },
.used = false,
- })) {
+ })) |*prev_value| {
switch (prev_value.value) {
UserValue.Scalar => |s| {
var list = List([]const u8).init(self.allocator);
@@ -444,11 +444,11 @@ pub const Builder = struct {
}
pub fn addUserInputFlag(self: &Builder, name: []const u8) -> bool {
- if (const prev_value ?= %%self.user_input_options.put(name, UserInputOption {
+ test (%%self.user_input_options.put(name, UserInputOption {
.name = name,
.value = UserValue.Flag,
.used = false,
- })) {
+ })) |*prev_value| {
switch (prev_value.value) {
UserValue.Scalar => |s| {
%%io.stderr.printf("Flag '-D{}' conflicts with option '-D{}={}'.\n", name, name, s);
@@ -766,7 +766,7 @@ pub const LibOrExeStep = struct {
%%zig_args.append("--release");
}
- if (const output_path ?= self.output_path) {
+ test (self.output_path) |output_path| {
%%zig_args.append("--output");
%%zig_args.append(builder.pathFromRoot(output_path));
}
@@ -912,7 +912,7 @@ pub const ObjectStep = struct {
%%zig_args.append("--release");
}
- if (const output_path ?= self.output_path) {
+ test (self.output_path) |output_path| {
%%zig_args.append("--output");
%%zig_args.append(builder.pathFromRoot(output_path));
}
@@ -1017,7 +1017,7 @@ pub const AsmStep = struct {
%%zig_args.append("--release");
}
- if (const output_path ?= self.output_path) {
+ test (self.output_path) |output_path| {
%%zig_args.append("--output");
%%zig_args.append(builder.pathFromRoot(output_path));
}
@@ -1194,7 +1194,7 @@ pub const LinkStep = struct {
%%zig_args.append("--static");
}
- if (const output_path ?= self.output_path) {
+ test (self.output_path) |output_path| {
%%zig_args.append("--output");
%%zig_args.append(builder.pathFromRoot(output_path));
}
@@ -1316,7 +1316,7 @@ pub const TestStep = struct {
%%zig_args.append("--release");
}
- if (const filter ?= self.filter) {
+ test (self.filter) |filter| {
%%zig_args.append("--test-filter");
%%zig_args.append(filter);
}
diff --git a/std/hash_map.zig b/std/hash_map.zig
index fdb7e65e8f..1102e96eeb 100644
--- a/std/hash_map.zig
+++ b/std/hash_map.zig
@@ -246,7 +246,7 @@ test "basicHashMapTest" {
assert((??map.get(2)).value == 22);
_ = map.remove(2);
assert(map.remove(2) == null);
- assert(if (const entry ?= map.get(2)) false else true);
+ assert(test (map.get(2)) false else true);
}
fn hash_i32(x: i32) -> u32 {
diff --git a/std/os/child_process.zig b/std/os/child_process.zig
index 7dd02635d8..8c09f25bee 100644
--- a/std/os/child_process.zig
+++ b/std/os/child_process.zig
@@ -56,9 +56,9 @@ pub const ChildProcess = struct {
errno.EINVAL, errno.ECHILD => unreachable,
errno.EINTR => continue,
else => {
- if (const *stdin ?= self.stdin) { stdin.close(); }
- if (const *stdout ?= self.stdin) { stdout.close(); }
- if (const *stderr ?= self.stdin) { stderr.close(); }
+ test (self.stdin) |*stdin| { stdin.close(); }
+ test (self.stdout) |*stdout| { stdout.close(); }
+ test (self.stderr) |*stderr| { stderr.close(); }
return error.Unexpected;
},
}
@@ -66,9 +66,10 @@ pub const ChildProcess = struct {
break;
}
- if (const *stdin ?= self.stdin) { stdin.close(); }
- if (const *stdout ?= self.stdin) { stdout.close(); }
- if (const *stderr ?= self.stdin) { stderr.close(); }
+ // TODO oops!
+ test (self.stdin) |*stdin| { stdin.close(); }
+ test (self.stdin) |*stdout| { stdout.close(); }
+ test (self.stdin) |*stderr| { stderr.close(); }
// Write @maxValue(ErrInt) to the write end of the err_pipe. This is after
// waitpid, so this write is guaranteed to be after the child
diff --git a/std/os/index.zig b/std/os/index.zig
index e9c182dafa..ec32b60d84 100644
--- a/std/os/index.zig
+++ b/std/os/index.zig
@@ -162,7 +162,7 @@ pub fn posixOpen(file_path: []const u8, flags: usize, perm: usize, allocator: ?&
if (file_path.len < stack_buf.len) {
path0 = stack_buf[0...file_path.len + 1];
- } else if (const a ?= allocator) {
+ } else test (allocator) |a| {
path0 = %return a.alloc(u8, file_path.len + 1);
need_free = true;
} else {
@@ -230,7 +230,7 @@ pub fn posixExecve(exe_path: []const u8, argv: []const []const u8, env_map: &con
mem.set(?&u8, argv_buf, null);
defer {
for (argv_buf) |arg| {
- const arg_buf = if (const ptr ?= arg) cstr.toSlice(ptr) else break;
+ const arg_buf = test (arg) |ptr| cstr.toSlice(ptr) else break;
allocator.free(arg_buf);
}
allocator.free(argv_buf);
@@ -257,7 +257,7 @@ pub fn posixExecve(exe_path: []const u8, argv: []const []const u8, env_map: &con
mem.set(?&u8, envp_buf, null);
defer {
for (envp_buf) |env| {
- const env_buf = if (const ptr ?= env) cstr.toSlice(ptr) else break;
+ const env_buf = test (env) |ptr| cstr.toSlice(ptr) else break;
allocator.free(env_buf);
}
allocator.free(envp_buf);
diff --git a/std/special/build_runner.zig b/std/special/build_runner.zig
index 7e9b31b241..5b412d83d6 100644
--- a/std/special/build_runner.zig
+++ b/std/special/build_runner.zig
@@ -53,7 +53,7 @@ pub fn main() -> %void {
%%io.stderr.printf("Expected option name after '-D'\n\n");
return usage(&builder, false, &io.stderr);
}
- if (const name_end ?= mem.indexOfScalar(u8, option_contents, '=')) {
+ test (mem.indexOfScalar(u8, option_contents, '=')) |name_end| {
const option_name = option_contents[0...name_end];
const option_value = option_contents[name_end + 1...];
if (builder.addUserInputOption(option_name, option_value))
diff --git a/std/special/compiler_rt.zig b/std/special/compiler_rt.zig
index 1fdec3f157..13429d16ac 100644
--- a/std/special/compiler_rt.zig
+++ b/std/special/compiler_rt.zig
@@ -34,7 +34,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
// 0 X
// ---
// 0 X
- if (const rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
*rem = n[low] % d[low];
}
return n[low] / d[low];
@@ -42,7 +42,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
// 0 X
// ---
// K X
- if (const rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
*rem = n[low];
}
return 0;
@@ -53,7 +53,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
// K X
// ---
// 0 0
- if (var rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
*rem = n[high] % d[low];
}
return n[high] / d[low];
@@ -63,7 +63,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
// K 0
// ---
// K 0
- if (var rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
r[high] = n[high] % d[high];
r[low] = 0;
*rem = *@ptrCast(&du_int, &r[0]);
@@ -75,7 +75,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
// K 0
// if d is a power of 2
if ((d[high] & (d[high] - 1)) == 0) {
- if (var rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
r[low] = n[low];
r[high] = n[high] & (d[high] - 1);
*rem = *@ptrCast(&du_int, &r[0]);
@@ -88,7 +88,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
sr = @clz(su_int(d[high])) - @clz(su_int(n[high]));
// 0 <= sr <= n_uword_bits - 2 or sr large
if (sr > n_uword_bits - 2) {
- if (var rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
*rem = *@ptrCast(&du_int, &n[0]);
}
return 0;
@@ -109,7 +109,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
// 0 K
// if d is a power of 2
if ((d[low] & (d[low] - 1)) == 0) {
- if (var rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
*rem = n[low] & (d[low] - 1);
}
if (d[low] == 1) {
@@ -153,7 +153,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
sr = @clz(su_int(d[high])) - @clz(su_int(n[high]));
// 0 <= sr <= n_uword_bits - 1 or sr large
if (sr > n_uword_bits - 1) {
- if (var rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
*rem = *@ptrCast(&du_int, &n[0]);
}
return 0;
@@ -198,7 +198,7 @@ export fn __udivmoddi4(a: du_int, b: du_int, maybe_rem: ?&du_int) -> du_int {
sr -= 1;
}
*@ptrCast(&du_int, &q[0]) = (*@ptrCast(&du_int, &q[0]) << 1) | u64(carry);
- if (var rem ?= maybe_rem) {
+ test (maybe_rem) |rem| {
*rem = *@ptrCast(&du_int, &r[0]);
}
return *@ptrCast(&du_int, &q[0]);