Project

General

Profile

Bug #10997

Updated by nobu (Nobuyoshi Nakada) about 9 years ago

i used with Rails console 

 **Only String is great** 

 ```ruby 
 ``` 
 original = "a" #=> "a" 
 clone = original.clone #=> "a" 
 clone.prepend("prepend_") #=> "prepend_a" 
 clone #=> "prepend_a" 
 original #=> "a" 
 ``` 
 **but String in Hash then get some issue** 

 ```ruby 
 ``` 
 original = { a: "a" } #=> {:a=>"a"} 
 clone = original.clone #=> {:a=>"a"} 
 clone[:a].prepend("prepend_") #=> "prepend_a" 
 clone #=> {:a=>"prepend_a"} 
 original #=> {:a=>"prepend_a"} 
 ``` 
 i expect `original` to `{:a=>"a"}` 
 **and when you use literal then works** 

 ```ruby 
 ``` 
 original = { a: "a" } #=> {:a=>"a"} 
 clone = original.clone #=> {:a=>"a"} 
 clone[:a] = "prepend_#{clone[:a]}" #=> "prepend_a" 
 clone #=> {:a=>"prepend_a"} 
 original #=> {:a=>"a"} 
 ``` 

 `<<` has same issue too. 

Back