Actions
Bug #5473
closedRaise in method_missing causes infinite loop
Description
=begin
The following code causes an infinite loop:
class ::Object
def method_missing(m, *a, &b)
raise ArgumentError.new("haha")
end
end
1.foo
This is due to the raise calling (({to_str})) on the exception, which isn't defined. So a (({method_missing})) that also covers the (({Exception})) class and that contains a (({raise})) (at least the version with one argument) causes an infinite loop.
I'm a bit hesitant to call this a bug, except that the pattern above happened in code that works on Ruby 1.8 and breaks on 1.9.
=end
Actions
Like0
Like0Like0