Commit a00e7d7
committed
[fix] MatchData#deconstruct_keys: include non-participating captures
JRuby skipped named capture groups that did not participate
in the match (value is nil).
With nil argument, such keys were omitted entirely.
With explicit keys, iteration stopped at the first non-participating
capture.
CRuby includes non-participating captures with nil values in all
cases. This is important for pattern matching where the absence of
a key means "does not match" while nil means "matched nothing".1 parent 4fd8090 commit a00e7d7
2 files changed
Lines changed: 34 additions & 3 deletions
File tree
- core/src/main/java/org/jruby
- spec/regression
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
951 | 951 | | |
952 | 952 | | |
953 | 953 | | |
954 | | - | |
| 954 | + | |
955 | 955 | | |
956 | 956 | | |
957 | 957 | | |
| |||
967 | 967 | | |
968 | 968 | | |
969 | 969 | | |
970 | | - | |
971 | | - | |
972 | 970 | | |
973 | 971 | | |
974 | 972 | | |
| |||
Lines changed: 33 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
0 commit comments