less nullable

This commit is contained in:
Folkert 2021-07-18 20:00:41 +02:00
parent b0a07558f1
commit 074aba0012

View file

@ -98,29 +98,30 @@ pub const RocDec = extern struct {
before_val_i128 = result; before_val_i128 = result;
} }
var dec: ?RocDec = null; const dec: RocDec = blk: {
if (before_val_i128) |before| { if (before_val_i128) |before| {
if (after_val_i128) |after| { if (after_val_i128) |after| {
var result: i128 = undefined; var result: i128 = undefined;
var overflowed = @addWithOverflow(i128, before, after, &result); var overflowed = @addWithOverflow(i128, before, after, &result);
if (overflowed) { if (overflowed) {
@panic("TODO runtime exception for overflow!"); @panic("TODO runtime exception for overflow!");
}
break :blk .{ .num = result };
} else {
break :blk .{ .num = before };
} }
dec = .{ .num = result }; } else if (after_val_i128) |after| {
break :blk .{ .num = after };
} else { } else {
dec = .{ .num = before }; return null;
} }
} else if (after_val_i128) |after| { };
dec = .{ .num = after };
}
if (dec) |d| { if (is_negative) {
if (is_negative) { return dec.negate();
dec = d.negate(); } else {
} return dec;
} }
return dec;
} }
pub fn toStr(self: RocDec) ?RocStr { pub fn toStr(self: RocDec) ?RocStr {