ich im Anschluss an die Übungen aus Ruby Koans und in about_proxy_object_project.rb
gibt es dieses Stück Code:Ruby-2.0 wirft "[BUG] Konsistenzfehler Stack"
class Proxy
def initialize(target_object)
@object = target_object
end
# This method was added by me
def method_missing(method_name, *args, &block)
@object.send method_name
end
end
, die wie folgt aufgerufen wird:
def test_tv_methods_still_perform_their_function
tv = Proxy.new(Television.new) # Television is a class with a :channel attr_accessor and a power method
tv.channel = 10
tv.power
assert_equal 10, tv.channel
assert tv.on?
end
das Problem ist, dass die Leitung tv.channel = 10
ist der Dolmetscher „brechen“ und wirft:
[BUG] Stack consistency error (sp: 53, bp: 54)
ruby 2.0.0p0
(...)
full stack trace follows
Ich habe den gleichen Code mit Ruby 1.9.3 versucht und es funktioniert. Ich benutze Ruby 2.0.0-p195.
Also, ist das ein Fehler/Bug? Oder mache ich etwas schrecklich falsch?
Es scheint in p247 am 27. Juni behoben worden zu sein, wie von matt hervorgehoben. – sawa