remove assert builtin
This commit is contained in:
parent
91038a2c65
commit
ff21b7d698
@ -1520,35 +1520,6 @@ pub const Builder = struct {
|
|||||||
_ = expected_type; // autofix
|
_ = expected_type; // autofix
|
||||||
unreachable;
|
unreachable;
|
||||||
},
|
},
|
||||||
.assert => {
|
|
||||||
assert(argument_node_list.len == 1);
|
|
||||||
const boolean = try builder.resolveRuntimeValue(unit, context, Type.Expect{ .type = .bool }, argument_node_list[0], .right);
|
|
||||||
switch (boolean.value) {
|
|
||||||
.@"comptime" => |ct| switch (ct) {
|
|
||||||
.bool => |value| switch (value) {
|
|
||||||
true => {},
|
|
||||||
false => {
|
|
||||||
@panic("Assert failed at comptime");
|
|
||||||
},
|
|
||||||
},
|
|
||||||
else => |t| @panic(@tagName(t)),
|
|
||||||
},
|
|
||||||
.runtime => |instruction_index| {
|
|
||||||
const true_block = try builder.newBasicBlock(unit, context);
|
|
||||||
const false_block = try builder.newBasicBlock(unit, context);
|
|
||||||
|
|
||||||
try builder.branch(unit, context, instruction_index, true_block, false_block);
|
|
||||||
|
|
||||||
builder.current_basic_block = false_block;
|
|
||||||
try builder.buildTrap(unit, context);
|
|
||||||
|
|
||||||
builder.current_basic_block = true_block;
|
|
||||||
},
|
|
||||||
else => |t| @panic(@tagName(t)),
|
|
||||||
}
|
|
||||||
|
|
||||||
return undefined;
|
|
||||||
},
|
|
||||||
.@"error" => {
|
.@"error" => {
|
||||||
assert(argument_node_list.len == 1);
|
assert(argument_node_list.len == 1);
|
||||||
// TODO: type
|
// TODO: type
|
||||||
|
@ -1180,7 +1180,7 @@ pub const LLVM = struct {
|
|||||||
for (sema_function_prototype.argument_types) |argument_type_index| {
|
for (sema_function_prototype.argument_types) |argument_type_index| {
|
||||||
switch (unit.types.get(argument_type_index).*) {
|
switch (unit.types.get(argument_type_index).*) {
|
||||||
// TODO: ABI
|
// TODO: ABI
|
||||||
.integer, .pointer, .@"enum", .@"struct", .slice => try parameter_types.append(context.allocator, try llvm.getType(unit, context, argument_type_index)),
|
.integer, .pointer, .@"enum", .@"struct", .slice, .bool, => try parameter_types.append(context.allocator, try llvm.getType(unit, context, argument_type_index)),
|
||||||
else => |t| @panic(@tagName(t)),
|
else => |t| @panic(@tagName(t)),
|
||||||
}
|
}
|
||||||
// arg_types.appendAssumeCapacity(llvm_argument_type);
|
// arg_types.appendAssumeCapacity(llvm_argument_type);
|
||||||
@ -2878,7 +2878,8 @@ pub fn codegen(unit: *Compilation.Unit, context: *const Compilation.Context) !vo
|
|||||||
switch (unit.types.get(argument_type_index).*) {
|
switch (unit.types.get(argument_type_index).*) {
|
||||||
.void, .noreturn, .type => unreachable,
|
.void, .noreturn, .type => unreachable,
|
||||||
.comptime_int => unreachable,
|
.comptime_int => unreachable,
|
||||||
.bool => unreachable,
|
.bool => {},
|
||||||
|
// .bool => unreachable,
|
||||||
.@"struct" => {},
|
.@"struct" => {},
|
||||||
.@"enum" => {},
|
.@"enum" => {},
|
||||||
.function => unreachable,
|
.function => unreachable,
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = #import("std");
|
const std = #import("std");
|
||||||
const Allocator = std.Allocator;
|
const Allocator = std.Allocator;
|
||||||
|
const assert = std.assert;
|
||||||
const current = #import("builtin").os;
|
const current = #import("builtin").os;
|
||||||
const system = switch (current) {
|
const system = switch (current) {
|
||||||
.linux => linux,
|
.linux => linux,
|
||||||
@ -192,7 +193,7 @@ const current_executable_path = fn(buffer: [:0]u8) ?[]u8 {
|
|||||||
}
|
}
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
#assert(i < buffer.len);
|
assert(i < buffer.len);
|
||||||
|
|
||||||
return result[0..i];
|
return result[0..i];
|
||||||
} else {
|
} else {
|
||||||
|
@ -30,7 +30,7 @@ const format_usize = fn(n: usize, buffer: &[65]u8) []u8 {
|
|||||||
index -= 1;
|
index -= 1;
|
||||||
const ch = '0' + digit;
|
const ch = '0' + digit;
|
||||||
buffer[index] = ch;
|
buffer[index] = ch;
|
||||||
#assert(buffer[index] == ch);
|
assert(buffer[index] == ch);
|
||||||
absolute /= 10;
|
absolute /= 10;
|
||||||
|
|
||||||
if (absolute == 0) {
|
if (absolute == 0) {
|
||||||
@ -44,7 +44,7 @@ const format_usize = fn(n: usize, buffer: &[65]u8) []u8 {
|
|||||||
const print_usize = fn(n: usize) void {
|
const print_usize = fn(n: usize) void {
|
||||||
var buffer: [65]u8 = undefined;
|
var buffer: [65]u8 = undefined;
|
||||||
const bytes = format_usize(n, buffer = buffer.&);
|
const bytes = format_usize(n, buffer = buffer.&);
|
||||||
#assert(bytes.len < buffer.len);
|
assert(bytes.len < buffer.len);
|
||||||
const file_descriptor = os.StdFileDescriptor.get(descriptor = .stdout);
|
const file_descriptor = os.StdFileDescriptor.get(descriptor = .stdout);
|
||||||
const file_writer = FileWriter{
|
const file_writer = FileWriter{
|
||||||
.descriptor = file_descriptor,
|
.descriptor = file_descriptor,
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
|
const std = #import("std");
|
||||||
|
const assert = std.assert;
|
||||||
|
|
||||||
const main = fn() s32 {
|
const main = fn() s32 {
|
||||||
#assert(true);
|
assert(true);
|
||||||
var a: s32 = 1;
|
var a: s32 = 1;
|
||||||
const is_not_one = a != 1;
|
const is_not_one = a != 1;
|
||||||
#assert(!is_not_one);
|
assert(!is_not_one);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
const std = #import("std");
|
||||||
|
const assert = std.assert;
|
||||||
|
|
||||||
const BitStruct = struct(u8) {
|
const BitStruct = struct(u8) {
|
||||||
a: bool,
|
a: bool,
|
||||||
b: bool,
|
b: bool,
|
||||||
@ -13,7 +16,7 @@ const main = fn () s32 {
|
|||||||
.d = 0,
|
.d = 0,
|
||||||
};
|
};
|
||||||
const bitcast_bs: u8 = #cast(bs);
|
const bitcast_bs: u8 = #cast(bs);
|
||||||
#assert(bitcast_bs == 6);
|
assert(bitcast_bs == 6);
|
||||||
|
|
||||||
const const_bs = BitStruct{
|
const const_bs = BitStruct{
|
||||||
.a = true,
|
.a = true,
|
||||||
@ -22,6 +25,6 @@ const main = fn () s32 {
|
|||||||
.d = 0,
|
.d = 0,
|
||||||
};
|
};
|
||||||
const bitcast_const_bs: u8 = #cast(const_bs);
|
const bitcast_const_bs: u8 = #cast(const_bs);
|
||||||
#assert(bitcast_const_bs == 5);
|
assert(bitcast_const_bs == 5);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
const std = #import("std");
|
||||||
|
const assert = std.assert;
|
||||||
|
|
||||||
const A = struct(u8) {
|
const A = struct(u8) {
|
||||||
a: u4,
|
a: u4,
|
||||||
b: u4,
|
b: u4,
|
||||||
@ -21,8 +24,8 @@ const main = fn () s32 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const b = transform(a);
|
const b = transform(a);
|
||||||
#assert(a.a == b.a);
|
assert(a.a == b.a);
|
||||||
#assert(a.b == b.b);
|
assert(a.b == b.b);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
|
const std = #import("std");
|
||||||
|
const assert = std.assert;
|
||||||
|
|
||||||
const main = fn() s32 {
|
const main = fn() s32 {
|
||||||
var buffer: [65]u8 = undefined;
|
var buffer: [65]u8 = undefined;
|
||||||
const slice = foo(5, buffer.&);
|
const slice = foo(5, buffer.&);
|
||||||
#assert(slice.len + 5 == buffer.len);
|
assert(slice.len + 5 == buffer.len);
|
||||||
const result: u32 = #cast(slice.len + 5 - buffer.len);
|
const result: u32 = #cast(slice.len + 5 - buffer.len);
|
||||||
return #cast(result);
|
return #cast(result);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user