[#23332] to_str再考 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

15 messages 2004/04/05

[#23380] [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

17 messages 2004/04/15
[#23400] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。落ちる場所がわかりました。

[#23402] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[#23403] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — nobu.nakada@... 2004/04/16

なかだです。

[#23405] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[#23407] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[ruby-dev:23392] Re: to_str再考

From: nobu.nakada@...
Date: 2004-04-16 01:00:16 UTC
List: ruby-dev #23392
なかだです。

At Tue, 6 Apr 2004 00:46:18 +0900,
Yukihiro Matsumoto wrote in [ruby-dev:23332]:
> optparse.rb: OptionParser::ParseError#to_str
> 
>   これはExceptionクラスがto_strを定義していて、上記ルールの
>   例外になっていたせいです。1.9ではException#to_strを無くす
>   ことにしますので、これを削れるでしょう。ローカルコピーでは
>   勝手に削っちゃいました。

optparseとは関係ないのですが、Exception#to_strがなくなったため
にdrbのテストが失敗します。

  test_02_unknown(TestDRbCore) [/home/nokada/src/ruby/HEAD/test/drb/drbtest.rb:112]:
  <"Unknown2"> expected but was
  <nil>.

> pathname.rb: Pathname#to_str

こちらも、to_strがなくなったために String == Pathname がfalseで
はなくてnilを返すようになっています。

  test_equality(PathnameTest) [/home/nokada/src/ruby/HEAD/lib/pathname.rb:904]:
  <false> expected but was
  <nil>.

これはどっちかというとテストの書き方のような気がします。


* lib/drb/drb.rb (DRb::DRbUnknown::initialize): Exception#to_str is
  deprecated.

* lib/pathname.rb (PathnameTest::test_equality): use predefined
  assertions instead of comparing with boolean.

Index: lib/drb/drb.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/drb/drb.rb,v
retrieving revision 1.16
diff -U2 -p -d -r1.16 drb.rb
--- lib/drb/drb.rb	18 Mar 2004 10:09:43 -0000	1.16
+++ lib/drb/drb.rb	15 Apr 2004 04:54:46 -0000
@@ -453,5 +453,5 @@ module DRb
     # name of the unmarshalled object.
     def initialize(err, buf)
-      case err
+      case err.to_s
       when /uninitialized constant (\S+)/
 	@name = $1
Index: lib/pathname.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/pathname.rb,v
retrieving revision 1.31
diff -U2 -p -d -r1.31 pathname.rb
--- lib/pathname.rb	7 Apr 2004 05:33:19 -0000	1.31
+++ lib/pathname.rb	16 Apr 2004 00:33:17 -0000
@@ -901,15 +901,15 @@ if $0 == __FILE__
       sym = :a
       ano = AnotherStringLike.new("a")
-      assert_equal(false, obj == str)
-      assert_equal(false, str == obj)
-      assert_equal(false, obj == ano)
-      assert_equal(false, ano == obj)
-      assert_equal(false, obj == sym)
-      assert_equal(false, sym == obj)
+      assert_not_equal(obj, str)
+      assert_not_equal(str, obj)
+      assert_not_equal(obj, ano)
+      assert_not_equal(ano, obj)
+      assert_not_equal(obj, sym)
+      assert_not_equal(sym, obj)
 
       obj2 = Pathname.new("a")
-      assert_equal(true, obj == obj2)
-      assert_equal(true, obj === obj2)
-      assert_equal(true, obj.eql?(obj2))
+      assert(obj == obj2)
+      assert(obj === obj2)
+      assert(obj.eql?(obj2))
     end
 

In This Thread