authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-31 10:56:21-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2020-03-31 10:56:21-04:00
log47a0e3ec5ecd58f47d8ef81909ecd61fbe777bfc
tree4c095d601d2692237b45c3140c100a5f08ffe5b9
parent6d25e451231d611887468c48ae72af441797c712
parent1111d3ad13b6e2af855b50c15bdbafcfc12b52c0
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #4871 from boothby/issue4769

Address bugs when //, /// or //! are immediately followed by EOF

5 files changed, 14 insertions(+), 0 deletions(-)

src/tokenizer.cpp+8
......@@ -1494,9 +1494,17 @@ void tokenize(Buf *buf, Tokenization *out) {
14941494 tokenize_error(&t, "unexpected EOF");
14951495 break;
14961496 case TokenizeStateLineComment:
1497 break;
14971498 case TokenizeStateSawSlash2:
1499 cancel_token(&t);
1500 break;
14981501 case TokenizeStateSawSlash3:
1502 set_token_id(&t, t.cur_tok, TokenIdDocComment);
1503 end_token(&t);
1504 break;
14991505 case TokenizeStateSawSlashBang:
1506 set_token_id(&t, t.cur_tok, TokenIdContainerDocComment);
1507 end_token(&t);
15001508 break;
15011509 }
15021510 if (t.state != TokenizeStateError) {
test/stage1/behavior.zig+3
......@@ -41,6 +41,9 @@ comptime {
4141 _ = @import("behavior/bugs/3586.zig");
4242 _ = @import("behavior/bugs/3742.zig");
4343 _ = @import("behavior/bugs/4560.zig");
44 _ = @import("behavior/bugs/4769_a.zig");
45 _ = @import("behavior/bugs/4769_b.zig");
46 _ = @import("behavior/bugs/4769_c.zig");
4447 _ = @import("behavior/bugs/394.zig");
4548 _ = @import("behavior/bugs/421.zig");
4649 _ = @import("behavior/bugs/529.zig");
test/stage1/behavior/bugs/4769_a.zig created+1
......@@ -0,0 +1 @@
1//
\ No newline at end of file
test/stage1/behavior/bugs/4769_b.zig created+1
......@@ -0,0 +1 @@
1//!
\ No newline at end of file
test/stage1/behavior/bugs/4769_c.zig created+1
......@@ -0,0 +1 @@
1///
\ No newline at end of file