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) {...@@ -1494,9 +1494,17 @@ void tokenize(Buf *buf, Tokenization *out) {
1494 tokenize_error(&t, "unexpected EOF");1494 tokenize_error(&t, "unexpected EOF");
1495 break;1495 break;
1496 case TokenizeStateLineComment:1496 case TokenizeStateLineComment:
1497 break;
1497 case TokenizeStateSawSlash2:1498 case TokenizeStateSawSlash2:
1499 cancel_token(&t);
1500 break;
1498 case TokenizeStateSawSlash3:1501 case TokenizeStateSawSlash3:
1502 set_token_id(&t, t.cur_tok, TokenIdDocComment);
1503 end_token(&t);
1504 break;
1499 case TokenizeStateSawSlashBang:1505 case TokenizeStateSawSlashBang:
1506 set_token_id(&t, t.cur_tok, TokenIdContainerDocComment);
1507 end_token(&t);
1500 break;1508 break;
1501 }1509 }
1502 if (t.state != TokenizeStateError) {1510 if (t.state != TokenizeStateError) {
test/stage1/behavior.zig+3
...@@ -41,6 +41,9 @@ comptime {...@@ -41,6 +41,9 @@ comptime {
41 _ = @import("behavior/bugs/3586.zig");41 _ = @import("behavior/bugs/3586.zig");
42 _ = @import("behavior/bugs/3742.zig");42 _ = @import("behavior/bugs/3742.zig");
43 _ = @import("behavior/bugs/4560.zig");43 _ = @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");
44 _ = @import("behavior/bugs/394.zig");47 _ = @import("behavior/bugs/394.zig");
45 _ = @import("behavior/bugs/421.zig");48 _ = @import("behavior/bugs/421.zig");
46 _ = @import("behavior/bugs/529.zig");49 _ = @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