Merge remote-tracking branch 'origin/master' into llvm8
This commit is contained in:
@@ -1,6 +1,15 @@
|
||||
const tests = @import("tests.zig");
|
||||
|
||||
pub fn addCases(cases: *tests.CompileErrorContext) void {
|
||||
cases.addTest(
|
||||
"@truncate undefined value",
|
||||
\\export fn entry() void {
|
||||
\\ var z = @truncate(u8, u16(undefined));
|
||||
\\}
|
||||
,
|
||||
".tmp_source.zig:2:30: error: use of undefined value",
|
||||
);
|
||||
|
||||
cases.addTest(
|
||||
"return invalid type from test",
|
||||
\\test "example" { return 1; }
|
||||
@@ -3335,7 +3344,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
|
||||
cases.add(
|
||||
"truncate sign mismatch",
|
||||
\\fn f() i8 {
|
||||
\\ const x: u32 = 10;
|
||||
\\ var x: u32 = 10;
|
||||
\\ return @truncate(i8, x);
|
||||
\\}
|
||||
\\
|
||||
|
||||
@@ -330,3 +330,8 @@ test "optional error set is the same size as error set" {
|
||||
expect(S.returnsOptErrSet() == null);
|
||||
comptime expect(S.returnsOptErrSet() == null);
|
||||
}
|
||||
|
||||
test "debug info for optional error set" {
|
||||
const SomeError = error{Hello};
|
||||
var a_local_variable: ?SomeError = null;
|
||||
}
|
||||
|
||||
@@ -6,3 +6,26 @@ test "truncate u0 to larger integer allowed and has comptime known result" {
|
||||
const y = @truncate(u8, x);
|
||||
comptime expect(y == 0);
|
||||
}
|
||||
|
||||
test "truncate.u0.literal" {
|
||||
var z = @truncate(u0, 0);
|
||||
expect(z == 0);
|
||||
}
|
||||
|
||||
test "truncate.u0.const" {
|
||||
const c0: usize = 0;
|
||||
var z = @truncate(u0, c0);
|
||||
expect(z == 0);
|
||||
}
|
||||
|
||||
test "truncate.u0.var" {
|
||||
var d: u8 = 2;
|
||||
var z = @truncate(u0, d);
|
||||
expect(z == 0);
|
||||
}
|
||||
|
||||
test "truncate sign mismatch but comptime known so it works anyway" {
|
||||
const x: u32 = 10;
|
||||
var result = @truncate(i8, x);
|
||||
expect(result == 10);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user