Issue #8166 has been reported by nagachika (Tomoyuki Chikanaga).

----------------------------------------
Bug #8166: Since r39628 rspec-mock's and_call_original fail with SystemStackError
https://bugs.ruby-lang.org/issues/8166

Author: nagachika (Tomoyuki Chikanaga)
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-03-24 trunk 39908) [x86_64-darwin10.8.0]


Hello,

By r39628 [Feature 8035], Module#ancestors for a singleton class contains singleton class itself.
It introduce a compatibility problem with rspec-mock's RSpec::Mocks::MessageExpectation#and_call_original.

and_call_original uses Module#ancestors to find the original method overridden by a singleton method. Because ancestors contains singleton class itself, `original_method' return stub method and fall into infinite recursive call.

I think hiding singleton class from ancestors is better even when a modules is pretended.


-- 
http://bugs.ruby-lang.org/