Commit c6c49389eb

Andrew Kelley <superjoe30@gmail.com>
2018-07-11 07:26:46
self-hosted: add compile error test for missing fn name
1 parent c620a1f
Changed files (2)
src-self-hosted
src-self-hosted/module.zig
@@ -347,13 +347,10 @@ pub const Module = struct {
                     const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl);
 
                     const name = if (fn_proto.name_token) |name_token| tree.tokenSlice(name_token) else {
-                        @panic("TODO add compile error");
-                        //try self.addCompileError(
-                        //    parsed_file,
-                        //    fn_proto.fn_token,
-                        //    fn_proto.fn_token + 1,
-                        //    "missing function name",
-                        //);
+                        try self.addCompileError(parsed_file, errmsg.Span{
+                            .first = fn_proto.fn_token,
+                            .last = fn_proto.fn_token + 1,
+                        }, "missing function name");
                         continue;
                     };
 
src-self-hosted/test.zig
@@ -17,6 +17,10 @@ test "compile errors" {
         \\export fn entry() void {}
     , file1, 2, 8, "exported symbol collision: 'entry'");
 
+    try ctx.testCompileError(
+        \\fn() void {}
+    , file1, 1, 1, "missing function name");
+
     try ctx.run();
 }