zig

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

commit 47a0e3ec5ecd58f47d8ef81909ecd61fbe777bfc (tree)
parent 6d25e451231d611887468c48ae72af441797c712
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Tue, 31 Mar 2020 10:56:21 -0400

Merge pull request #4871 from boothby/issue4769

Address bugs when //, /// or //! are immediately followed by EOF
Diffstat:
Msrc/tokenizer.cpp | 8++++++++
Mtest/stage1/behavior.zig | 3+++
Atest/stage1/behavior/bugs/4769_a.zig | 2++
Atest/stage1/behavior/bugs/4769_b.zig | 2++
Atest/stage1/behavior/bugs/4769_c.zig | 2++
5 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp @@ -1494,9 +1494,17 @@ void tokenize(Buf *buf, Tokenization *out) { tokenize_error(&t, "unexpected EOF"); break; case TokenizeStateLineComment: + break; case TokenizeStateSawSlash2: + cancel_token(&t); + break; case TokenizeStateSawSlash3: + set_token_id(&t, t.cur_tok, TokenIdDocComment); + end_token(&t); + break; case TokenizeStateSawSlashBang: + set_token_id(&t, t.cur_tok, TokenIdContainerDocComment); + end_token(&t); break; } if (t.state != TokenizeStateError) { diff --git a/test/stage1/behavior.zig b/test/stage1/behavior.zig @@ -41,6 +41,9 @@ comptime { _ = @import("behavior/bugs/3586.zig"); _ = @import("behavior/bugs/3742.zig"); _ = @import("behavior/bugs/4560.zig"); + _ = @import("behavior/bugs/4769_a.zig"); + _ = @import("behavior/bugs/4769_b.zig"); + _ = @import("behavior/bugs/4769_c.zig"); _ = @import("behavior/bugs/394.zig"); _ = @import("behavior/bugs/421.zig"); _ = @import("behavior/bugs/529.zig"); diff --git a/test/stage1/behavior/bugs/4769_a.zig b/test/stage1/behavior/bugs/4769_a.zig @@ -0,0 +1 @@ +// +\ No newline at end of file diff --git a/test/stage1/behavior/bugs/4769_b.zig b/test/stage1/behavior/bugs/4769_b.zig @@ -0,0 +1 @@ +//! +\ No newline at end of file diff --git a/test/stage1/behavior/bugs/4769_c.zig b/test/stage1/behavior/bugs/4769_c.zig @@ -0,0 +1 @@ +/// +\ No newline at end of file