Project

General

Profile

Actions

Bug #4716

closed

Ripper orders rescue_mod subnodes inconsistently [PATCH]

Added by adgar (Michael Edgar) almost 13 years ago. Updated over 12 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 1.9.2p188 (2011-03-28 revision 31204) [x86_64-darwin10.7.0]
Backport:
[ruby-core:36248]

Description

Depending on whether a rescue_mod node is in an assignment context or not, the parse order differs:

pp Ripper.sexp("a rescue b")
[:program,
[[:rescue_mod,
[:var_ref, [:@ident, "b", [1, 9]]],
[:var_ref, [:@ident, "a", [1, 0]]]]]]

pp Ripper.sexp("x = a rescue b")

[:program,
[[:assign,
[:var_field, [:@ident, "x", [1, 0]]],
[:rescue_mod,
[:var_ref, [:@ident, "a", [1, 4]]],
[:var_ref, [:@ident, "b", [1, 13]]]]]]]

I've attached a patch that fixes the issue - a patch containing tests will soon follow.


Files

rescue_mod.diff (408 Bytes) rescue_mod.diff Patch fixing inconsistent parse order adgar (Michael Edgar), 05/17/2011 08:21 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0