From 0c33ebb38eeb383da62a8af8aa368e8f6cac63a2 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 18 Nov 2019 19:59:03 -0500 Subject: add regression test case. closes #2980 --- test/compile_errors.zig | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'test') diff --git a/test/compile_errors.zig b/test/compile_errors.zig index 40c44846f3..c23897a51a 100644 --- a/test/compile_errors.zig +++ b/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 { -- cgit v1.2.3