From c759a77aa063f75b29a2278409b9c6d92496ae5d Mon Sep 17 00:00:00 2001 From: Vexu Date: Thu, 12 Dec 2019 18:26:12 +0200 Subject: [PATCH] fix dot init parsing --- src/parser.cpp | 6 +++++- test/compile_errors.zig | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/parser.cpp b/src/parser.cpp index 96162632b9..4b5e0e3ebb 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -1923,7 +1923,11 @@ static AstNode *ast_parse_anon_lit(ParseContext *pc) { } // anon container literal - return ast_parse_init_list(pc); + AstNode *res = ast_parse_init_list(pc); + if (res != nullptr) + return res; + put_back_token(pc); + return nullptr; } // AsmOutput <- COLON AsmOutputList AsmInput? diff --git a/test/compile_errors.zig b/test/compile_errors.zig index 12e9184c57..d2f5082d74 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -2,6 +2,18 @@ const tests = @import("tests.zig"); const builtin = @import("builtin"); pub fn addCases(cases: *tests.CompileErrorContext) void { + cases.add("invalid float literal", + \\const std = @import("std"); + \\ + \\pub fn main() void { + \\ var bad_float :f32 = 0.0; + \\ bad_float = bad_float + .20; + \\ std.debug.assert(bad_float < 1.0); + \\}) + , &[_][]const u8{ + "tmp.zig:5:29: error: invalid token: '.'", + }); + cases.add("var args without c calling conv", \\fn foo(args: ...) void {} \\comptime {