aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parse.y29
-rw-r--r--test/ruby/test_parse.rb9
-rw-r--r--test/ruby/test_syntax.rb6
3 files changed, 4 insertions, 40 deletions
diff --git a/parse.y b/parse.y
index 039abc48d7..e84468d2a5 100644
--- a/parse.y
+++ b/parse.y
@@ -6191,30 +6191,7 @@ parser_str_new(const char *ptr, long len, rb_encoding *enc, int func, rb_encodin
return str;
}
-static const char *
-eof_char(int c)
-{
- switch (c) {
- case '\0': return "\\0";
- case '\004': return "^D";
- case '\032': return "^Z";
- }
- return 0;
-}
-
-static void
-lex_goto_eol(struct parser_params *p)
-{
- const char *pcur = p->lex.pcur, *pend = p->lex.pend;
- for (; pcur < pend; pcur++) {
- const char *eof = eof_char(*pcur);
- if (eof) {
- rb_warning1("encountered %s in comment, just ignored in this version", WARN_S(eof));
- break;
- }
- }
- p->lex.pcur = pend; /* pcur */
-}
+#define lex_goto_eol(p) ((p)->lex.pcur = (p)->lex.pend)
#define lex_eol_p(p) ((p)->lex.pcur >= (p)->lex.pend)
#define lex_eol_n_p(p,n) ((p)->lex.pcur+(n) >= (p)->lex.pend)
#define peek(p,c) peek_n(p, (c), 0)
@@ -7421,7 +7398,9 @@ word_match_p(struct parser_params *p, const char *word, long len)
if (p->lex.pcur + len == p->lex.pend) return 1;
int c = (unsigned char)p->lex.pcur[len];
if (ISSPACE(c)) return 1;
- if (eof_char(c)) return 1;
+ switch (c) {
+ case '\0': case '\004': case '\032': return 1;
+ }
return 0;
}
diff --git a/test/ruby/test_parse.rb b/test/ruby/test_parse.rb
index 17a0c8a077..2622ec529c 100644
--- a/test/ruby/test_parse.rb
+++ b/test/ruby/test_parse.rb
@@ -720,15 +720,6 @@ x = __ENCODING__
assert_syntax_error("=begin", error)
end
- def test_embedded_rd_warning
- [["\0", "\\0"], ["\C-d", "^D"], ["\C-z", "^Z"]].each do |eof, mesg|
- mesg = /encountered #{Regexp.quote(mesg)}/
- assert_warning(mesg) {eval("=begin\n#{eof}\n=end")}
- assert_warning(mesg) {eval("=begin#{eof}\n=end")}
- assert_warning(mesg) {eval("=begin\n=end#{eof}\n")}
- end
- end
-
def test_float
assert_equal(1.0/0, eval("1e10000"))
assert_syntax_error('1_E', /trailing `_'/)
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index d0748e7028..5fb4dfa64f 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -943,12 +943,6 @@ eom
end
end
- def test_warning_for_eof_in_comment
- assert_warning(/encountered \\0/) {eval("#\0")}
- assert_warning(/encountered \^D/) {eval("#\C-d")}
- assert_warning(/encountered \^Z/) {eval("#\C-z")}
- end
-
def test_unexpected_fraction
msg = /unexpected fraction/
assert_syntax_error("0x0.0", msg)