*
in an array pattern should not be parsed as nil in ripper
After 6c0925ba7017efde6091e2ec4f1a6be268166696, it was impossible to distinguish between the presence or absence of `*`. # Before the commit Ripper.sexp('0 in []')[1][0][2][1] #=> [:aryptn, nil, nil, nil, nil] Ripper.sexp('0 in [*]')[1][0][2][1] #=> [:aryptn, nil, nil, [:var_field, nil], nil] # After the commit Ripper.sexp('0 in []')[1][0][2][1] #=> [:aryptn, nil, nil, nil, nil] Ripper.sexp('0 in [*]')[1][0][2][1] #=> [:aryptn, nil, nil, nil, nil] This commit reverts it.
This commit is contained in:
parent
3a238eff88
commit
4ac8d11724
2
parse.y
2
parse.y
@ -4656,7 +4656,7 @@ p_rest : tSTAR tIDENTIFIER
|
|||||||
/*%%%*/
|
/*%%%*/
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
/*% %*/
|
/*% %*/
|
||||||
/*% ripper: Qnil %*/
|
/*% ripper: var_field(p, Qnil) %*/
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -229,7 +229,7 @@ eot
|
|||||||
[__LINE__, %q{ case 0; in *; end }] =>
|
[__LINE__, %q{ case 0; in *; end }] =>
|
||||||
[:case,
|
[:case,
|
||||||
[:@int, "0", [1, 5]],
|
[:@int, "0", [1, 5]],
|
||||||
[:in, [:aryptn, nil, nil, nil, nil], [[:void_stmt]], nil]],
|
[:in, [:aryptn, nil, nil, [:var_field, nil], nil], [[:void_stmt]], nil]],
|
||||||
|
|
||||||
[__LINE__, %q{ case 0; in *,a; end }] =>
|
[__LINE__, %q{ case 0; in *,a; end }] =>
|
||||||
[:case,
|
[:case,
|
||||||
@ -238,7 +238,7 @@ eot
|
|||||||
[:aryptn,
|
[:aryptn,
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
nil,
|
[:var_field, nil],
|
||||||
[[:var_field, [:@ident, "a", [1, 13]]]]],
|
[[:var_field, [:@ident, "a", [1, 13]]]]],
|
||||||
[[:void_stmt]],
|
[[:void_stmt]],
|
||||||
nil]],
|
nil]],
|
||||||
@ -426,9 +426,9 @@ eot
|
|||||||
[:in,
|
[:in,
|
||||||
[:fndptn,
|
[:fndptn,
|
||||||
nil,
|
nil,
|
||||||
nil,
|
[:var_field, nil],
|
||||||
[[:var_field, [:@ident, "a", [1, 9]]]],
|
[[:var_field, [:@ident, "a", [1, 9]]]],
|
||||||
nil],
|
[:var_field, nil]],
|
||||||
nil,
|
nil,
|
||||||
nil]],
|
nil]],
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user