Bug #11485 ยป ripper-ignored-nl-nil.patch
parse.y | ||
---|---|---|
case '|':
|
||
case '&':
|
||
case '.': {
|
||
#ifndef RIPPER
|
||
dispatch_delayed_token(p, tIGNORED_NL);
|
||
#else
|
||
if (p->delayed != Qnil) {
|
||
dispatch_delayed_token(p, tIGNORED_NL);
|
||
}
|
||
#endif
|
||
if (c == '|' ? peek(p, '>') : (peek(p, '.') == (c == '&'))) {
|
||
pushback(p, c);
|
||
dispatch_scan_event(p, tSP);
|
test/ripper/test_parser_events.rb | ||
---|---|---|
assert_equal true, thru_ifop
|
||
end
|
||
def test_ignored_nl
|
||
ignored_nl = []
|
||
parse("foo # comment\n...\n", :on_ignored_nl) {|_, a| ignored_nl << a}
|
||
assert_equal ["\n"], ignored_nl
|
||
end
|
||
def test_lambda
|
||
thru_lambda = false
|
||
parse('->{}', :on_lambda) {thru_lambda = true}
|