Actions
Bug #15616
closedChained destructive methods fail when using +@ to unfreeze a frozen string
Bug #15616:
Chained destructive methods fail when using +@ to unfreeze a frozen string
Description
Using the +@ syntax to unfreeze a string does not work when chaining destructive methods
Consider the following;
This raises;
However, I would have expected this to work since +@ should return a duplicated mutable string.
Updated by ahorek (Pavel Rosický) over 7 years ago
Updated by duerst (Martin Dürst) over 7 years ago
- Status changed from Open to Rejected
Yes. It's a matter of precedence. The "Pickaxe" book describes it as
Single terms in an expression may be any of the following:
[some cases omitted]
- Method invocation
That means that in +foo.gsub!("bar", "car"), the . of method invocation has higher precedence than the +, and so you need to use parentheses if you want to change the order of evaluation.
Actions