add regression test case. closes #2980

master
Andrew Kelley 2019-11-18 19:59:03 -05:00
parent 9eed0d3603
commit 0c33ebb38e
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
1 changed files with 19 additions and 0 deletions

View File

@ -2,6 +2,25 @@ const tests = @import("tests.zig");
const builtin = @import("builtin");
pub fn addCases(cases: *tests.CompileErrorContext) void {
cases.add(
"regression test #2980: base type u32 is not type checked properly when assigning a value within a struct",
\\const Foo = struct {
\\ ptr: ?*usize,
\\ uval: u32,
\\};
\\fn get_uval(x: u32) !u32 {
\\ return error.NotFound;
\\}
\\export fn entry() void {
\\ const afoo = Foo{
\\ .ptr = null,
\\ .uval = get_uval(42),
\\ };
\\}
,
"tmp.zig:11:25: error: expected type 'u32', found '@typeOf(get_uval).ReturnType.ErrorSet!u32'",
);
cases.add(
"asigning to struct or union fields that are not optionals with a function that returns an optional",
\\fn maybe(is: bool) ?u8 {