summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--bootstraptest/test_thread.rb6
-rw-r--r--parse.y4
3 files changed, 9 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 5f082e5bdb..12c664ad9e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Mon Dec 10 07:48:14 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * parse.y (parser_yylex): wrong token was generated. [ruby-dev:32498]
+
Mon Dec 10 06:44:47 2007 Tanaka Akira <akr@fsij.org>
* re.c (rb_reg_expr_str): use \xHH instead of \OOO.
diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb
index 40ccbad497..3c1cc5a1c1 100644
--- a/bootstraptest/test_thread.rb
+++ b/bootstraptest/test_thread.rb
@@ -169,9 +169,9 @@ assert_equal %q{11}, %q{
Thread.current[:a]
}.value + Thread.current[:a]
}
-assert_equal %q{1000}, %q{
+assert_equal %q{100}, %q{
begin
- 1000.times do |i|
+ 100.times do |i|
begin
Thread.start(Thread.current) {|u| u.raise }
raise
@@ -180,6 +180,6 @@ begin
end
end
rescue
- 1000
+ 100
end
}, '[ruby-dev:31371]'
diff --git a/parse.y b/parse.y
index ddfca76626..1d2669c453 100644
--- a/parse.y
+++ b/parse.y
@@ -6087,8 +6087,8 @@ parser_yylex(struct parser_params *parser)
c = nextc();
if (lex_state == EXPR_FNAME || lex_state == EXPR_DOT) {
lex_state = EXPR_ARG;
- if (c != '@') {
- pushback(c);
+ if (c == '@') {
+ return '!';
}
}
else {