8000 merge revision(s) r47696,r47697: [Backport #10279] · github/ruby@da7ec40 · GitHub
[go: up one dir, main page]

Skip to content

Commit da7ec40

Browse files
nagachikadbussink
authored andcommitted
merge revision(s) r47696,r47697: [Backport ruby#10279]
* parse.y (parse_ident): just after a label, new expression should start, cannot be a modifier. [ruby-core:65211] [Bug ruby#10279] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e Conflicts: ChangeLog version.h
1 parent 6b25e9a commit da7ec40

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
Wed Sep 24 02:30:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
2+
3+
* parse.y (parse_ident): just after a label, new expression should
4+
start, cannot be a modifier. [ruby-core:65211] [Bug #10279]
5+
16
Fri Mar 7 12:06:19 2014 Martin Bosslet <Martin.Bosslet@gmail.com>
27

38
* test/openssl/test_ssl.rb: Reuse TLS default options from

parse.y

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8195,7 +8195,7 @@ parser_yylex(struct parser_params *parser)
81958195
return keyword_do_block;
81968196
return keyword_do;
81978197
}
8198-
if (IS_lex_state_for(state, (EXPR_BEG | EXPR_VALUE)))
8198+
if (IS_lex_state_for(state, (EXPR_BEG | EXPR_VALUE | EXPR_LABELARG)))
81998199
return kw->id[0];
82008200
else {
82018201
if (kw->id[0] != kw->id[1])

test/ruby/test_keyword.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,9 @@ def test_required_keyword
325325
assert_equal([[:keyreq, :a], [:keyrest, :b]], o.method(:bar).parameters, feature7701)
326326
assert_raise_with_message(ArgumentError, /missing keyword/, bug8139) {o.bar(c: bug8139)}
327327
assert_raise_with_message(ArgumentError, /missing keyword/, bug8139) {o.bar}
328+
end
328329

330+
def test_required_keyword_with_newline
329331
bug9669 = '[ruby-core:61658] [Bug #9669]'
330332
assert_nothing_raised(SyntaxError, bug9669) do
331333
eval(<<-'end;', nil, __FILE__, __LINE__)
@@ -335,6 +337,7 @@ def bug9669.foo a:
335337
end;
336338
end
337339
assert_equal(42, bug9669.foo(a: 42))
340+
o = nil
338341
assert_nothing_raised(SyntaxError, bug9669) do
339342
eval(<<-'end;', nil, __FILE__, __LINE__)
340343
o = {
@@ -346,6 +349,17 @@ def bug9669.foo a:
346349
assert_equal({a: 1}, o, bug9669)
347350
end
348351

352+
def test_required_keyword_with_reserved
353+
bug10279 = '[ruby-core:65211] [Bug #10279]'
354+
h = nil
355+
assert_nothing_raised(SyntaxError, bug10279) do
356+
break eval(<<-'end;', nil, __FILE__, __LINE__)
357+
h = {a: if true then 42 end}
358+
end;
359+
end
360+
assert_equal({a: 42}, h, bug10279)
361+
end
362+
349363
def test_block_required_keyword
350364
feature7701 = '[ruby-core:51454] [Feature #7701] required keyword argument'
351365
b = assert_nothing_raised(SyntaxError, feature7701) do

0 commit comments

Comments
 (0)
0