# \[ruby-trunk - Bug #10421\] BasicObject継承クラスで object\_id メソッドを定義すると redefining 警告が出る

**URL:** <https://www.ruby-forum.com/t/ruby-trunk-bug-10421-basicobject-object-id-redefining/232745>\
**Category:** Development\
**Created:** [October 25, 2014, 8:43pm UTC](https://www.ruby-forum.com/t/ruby-trunk-bug-10421-basicobject-object-id-redefining/232745 "2014-10-25T20:43:57Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [October 25, 2014, 8:43pm UTC](https://www.ruby-forum.com/t/ruby-trunk-bug-10421-basicobject-object-id-redefining/232745/1 "2014-10-25T20:43:57Z")

</div>

Issue #10421 has been updated by Tomoyuki C…

Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED to 2.0.0: REQUIRED,  
2.1: DONE

Backported into `ruby_2_1` at r48138.

* * *

Bug #10421: BasicObject継承クラスで object\_id メソッドを定義すると redefining … 警告が出る

> **[Bug #10421: BasicObject継承クラスで object\_id メソッドを定義すると redefining ... 警告が出る -...](https://bugs.ruby-lang.org/issues/10421#change-49639)**
>
> Redmine

- Author: Satoshi TAGOMORI
- Status: Closed
- Priority: Normal
- Assignee:
- Category:
- Target version:
- ruby -v: ruby 2.1.3p242 (2014-09-19 revision 47630)  
[x86\_64-darwin12.0]
- Backport: 2.0.0: REQUIRED, 2.1: DONE

* * *

BasicObject 継承クラスに通常 `#object_id` がありませんが、これだと pp などに該当オブジェクトを与えると  
NoMethodError 例外が出たりして実用上困るケースがあります。ただし `#object_id` を定義すると以下のような警告が出ます。

```
warning: redefining `object_id' may cause serious problems

```

BasicObject には元々 `#object_id` は存在しないため redefining という警告はこの場合は誤りであり、また  
`#object_id` を定義することの危険については意図してBasicObjectを使っているプログラマには理解されているものと思います。

このため、この警告は BasicObject 継承クラスにおいては出さないのが適当かと思います。
