Please sign in to comment.
self is wrong in set_trace_func when raising NoMethodErrors The default method_missing implementations still were being framed, since they used to need that to get the name of the method being called. However, at some point they just started to use the name being passed through the call chain, which meant the frame was unnecessary. The bug was caused by the fact that the binding's self also comes from the frame, which in method_missing would be the object against which the missing method was being called. That caused both "self" and "s" in the bug report to point at the String in question, since "self" came from m_m's frame and "s" came from the caller's scopes (m_m did not get its own scope). Removing the framing from m_m fixed the issue and did not introduce others (since that frame was not actually being used anymore).
- Loading branch information...
Showing with 22 additions and 7 deletions.