zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit fd575fe1f3b45806f2cf823a2abe3727d381d4ed (tree)
parent 84195467ad974f9b7201e4e1bbd6dccbd5e7ab90
Author: Andrew Kelley <superjoe30@gmail.com>
Date:   Wed, 25 Jul 2018 18:15:55 -0400

add compile error for missing parameter name of generic function

Diffstat:
Msrc/ir.cpp | 1+
Mtest/compile_errors.zig | 11+++++++++++
2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/ir.cpp b/src/ir.cpp @@ -12591,6 +12591,7 @@ static bool ir_analyze_fn_call_generic_arg(IrAnalyze *ira, AstNode *fn_proto_nod } Buf *param_name = param_decl_node->data.param_decl.name; + if (!param_name) return false; if (!is_var_args) { VariableTableEntry *var = add_variable(ira->codegen, param_decl_node, *child_scope, param_name, true, arg_val, nullptr); diff --git a/test/compile_errors.zig b/test/compile_errors.zig @@ -2,6 +2,17 @@ const tests = @import("tests.zig"); pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add( + "missing parameter name of generic function", + \\fn dump(var) void {} + \\export fn entry() void { + \\ var a: u8 = 9; + \\ dump(a); + \\} + , + ".tmp_source.zig:1:9: error: missing parameter name", + ); + + cases.add( "non-inline for loop on a type that requires comptime", \\const Foo = struct { \\ name: []const u8,