From: Eric Wong Date: 2018-02-27T08:43:41+00:00 Subject: [ruby-core:85845] Re: [Ruby trunk Feature#14478] String #uminus should de-dupe unconditionally sam.saffron@gmail.com wrote: > But this seems to break the test/ruby/test_string.rb cause > there is some edge case we are missing here. I didn't see a failure in test_string.rb, but got one rubyspec failure: ``` 1) String#-@ is an identity function if the string is frozen FAILED Expected "this string is frozen" to be identical to "this string is frozen" $srcdir/ruby/spec/ruby/core/string/uminus_spec.rb:38:in `block (4 levels) in ' $srcdir/ruby/spec/ruby/core/string/uminus_spec.rb:4:in `block in ' $srcdir/ruby/spec/ruby/core/string/uminus_spec.rb:3:in `' I guess this requires a change to rubyspec: diff --git a/spec/ruby/core/string/uminus_spec.rb b/spec/ruby/core/string/uminus_spec.rb index f18e6b1234..9474666e30 100644 --- a/spec/ruby/core/string/uminus_spec.rb +++ b/spec/ruby/core/string/uminus_spec.rb @@ -35,11 +35,9 @@ it "is an identity function if the string is frozen" do dynamic = %w(this string is frozen).join(' ').freeze - (-dynamic).should equal(dynamic) - dynamic.should_not equal("this string is frozen".freeze) - (-dynamic).should_not equal("this string is frozen".freeze) - (-dynamic).should_not equal(-"this string is frozen".freeze) + (-dynamic).should equal("this string is frozen".freeze) + (-dynamic).should equal(-"this string is frozen".freeze) end end end ``` Disclaimer: I am not knowledgeable in *spec DSL/API so I'm just deleted characters until the test passed :> Unsubscribe: