aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/build_examples.zig2
-rw-r--r--test/compile_errors.zig4
-rw-r--r--test/standalone/main_return_error/error_u8.zig7
-rw-r--r--test/standalone/main_return_error/error_u8_non_zero.zig8
4 files changed, 19 insertions, 2 deletions
diff --git a/test/build_examples.zig b/test/build_examples.zig
index d38336939d..4733a25b64 100644
--- a/test/build_examples.zig
+++ b/test/build_examples.zig
@@ -7,6 +7,8 @@ pub fn addCases(cases: *tests.BuildExamplesContext) void {
cases.addC("example/hello_world/hello_libc.zig");
cases.add("example/cat/main.zig");
cases.add("example/guess_number/main.zig");
+ cases.add("test/standalone/main_return_error/error_u8.zig");
+ cases.add("test/standalone/main_return_error/error_u8_non_zero.zig");
cases.addBuildFile("test/standalone/main_pkg_path/build.zig");
cases.addBuildFile("example/shared_library/build.zig");
cases.addBuildFile("example/mix_o_files/build.zig");
diff --git a/test/compile_errors.zig b/test/compile_errors.zig
index e0ac76bbf0..6631200210 100644
--- a/test/compile_errors.zig
+++ b/test/compile_errors.zig
@@ -2213,7 +2213,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
"wrong return type for main",
\\pub fn main() f32 { }
,
- "error: expected return type of main to be 'u8', 'noreturn', 'void', or '!void'",
+ "error: expected return type of main to be 'u8', 'noreturn', 'void', '!void', or '!u8'",
);
cases.add(
@@ -2221,7 +2221,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
\\pub fn main() ??void {
\\}
,
- "error: expected return type of main to be 'u8', 'noreturn', 'void', or '!void'",
+ "error: expected return type of main to be 'u8', 'noreturn', 'void', '!void', or '!u8'",
);
cases.add(
diff --git a/test/standalone/main_return_error/error_u8.zig b/test/standalone/main_return_error/error_u8.zig
new file mode 100644
index 0000000000..4edac26afd
--- /dev/null
+++ b/test/standalone/main_return_error/error_u8.zig
@@ -0,0 +1,7 @@
+const Err = error {
+ Foo
+};
+
+pub fn main() !u8 {
+ return Err.Foo;
+}
diff --git a/test/standalone/main_return_error/error_u8_non_zero.zig b/test/standalone/main_return_error/error_u8_non_zero.zig
new file mode 100644
index 0000000000..703a19b314
--- /dev/null
+++ b/test/standalone/main_return_error/error_u8_non_zero.zig
@@ -0,0 +1,8 @@
+const Err = error { Foo };
+
+fn foo() u8 { var x = @intCast(u8, 9); return x; }
+
+pub fn main() !u8 {
+ if (foo() == 7) return Err.Foo;
+ return 123;
+}