[ruby-core:85845] Re: [Ruby trunk Feature#14478] String #uminus should de-dupe unconditionally

From: Eric Wong <normalperson@...>
Date: 2018-02-27 08:43:41 UTC
List: ruby-core #85845
[email protected] 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 <top (required)>'
$srcdir/ruby/spec/ruby/core/string/uminus_spec.rb:4:in `block in <top (required)>'
$srcdir/ruby/spec/ruby/core/string/uminus_spec.rb:3:in `<top (required)>'

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: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next