From 5831b68341827b544ea3f268c921e9044bd11047 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Thu, 8 Dec 2022 19:28:01 +0200 Subject: [PATCH] AstGen: add check for missing builtin argument Closes #13817 --- src/AstGen.zig | 4 ++++ .../missing_builtin_arg_in_initializer.zig | 13 +++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 test/cases/compile_errors/missing_builtin_arg_in_initializer.zig diff --git a/src/AstGen.zig b/src/AstGen.zig index c9f44a6216..021990883a 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -9098,6 +9098,8 @@ fn nodeMayNeedMemoryLocation(tree: *const Ast, start_node: Ast.Node.Index, have_ .always => return true, .forward1 => node = node_datas[node].rhs, } + // Missing builtin arg is not a parsing error, expect an error later. + if (node == 0) return false; }, .builtin_call, .builtin_call_comma => { @@ -9112,6 +9114,8 @@ fn nodeMayNeedMemoryLocation(tree: *const Ast, start_node: Ast.Node.Index, have_ .always => return true, .forward1 => node = params[1], } + // Missing builtin arg is not a parsing error, expect an error later. + if (node == 0) return false; }, } } diff --git a/test/cases/compile_errors/missing_builtin_arg_in_initializer.zig b/test/cases/compile_errors/missing_builtin_arg_in_initializer.zig new file mode 100644 index 0000000000..0bada117b2 --- /dev/null +++ b/test/cases/compile_errors/missing_builtin_arg_in_initializer.zig @@ -0,0 +1,13 @@ +comptime { + const v = @as(); +} +comptime { + const u = @bitCast(u32); +} + +// error +// backend=stage2 +// target=native +// +// :2:15: error: expected 2 arguments, found 0 +// :5:15: error: expected 2 arguments, found 1