Commit 0c33ebb38e

Andrew Kelley <andrew@ziglang.org>
2019-11-19 01:59:03
add regression test case. closes #2980
1 parent 9eed0d3
Changed files (1)
test/compile_errors.zig
@@ -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 {