summaryrefslogtreecommitdiff
path: root/spec/ruby/core/unboundmethod
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2022-09-28 18:54:05 +0200
committerBenoit Daloze <eregontp@gmail.com>2022-09-29 15:48:35 +0200
commit94cea3e4d0a60326bd95be762819eed8ccd59ca6 (patch)
tree3f1ce9e04741e68ab53728e8ced70fa05e759d40 /spec/ruby/core/unboundmethod
parent892f350a7db4d2cc99c5061d2e74498dfc4809ca (diff)
Fix {Method,UnboundMethod}#super_method for zsuper methods
* We need to resolve the zsuper method first, and then look the super method of that.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/6467
Diffstat (limited to 'spec/ruby/core/unboundmethod')
-rw-r--r--spec/ruby/core/unboundmethod/super_method_spec.rb16
1 files changed, 6 insertions, 10 deletions
diff --git a/spec/ruby/core/unboundmethod/super_method_spec.rb b/spec/ruby/core/unboundmethod/super_method_spec.rb
index 5cf96e6fa9..aa7c129377 100644
--- a/spec/ruby/core/unboundmethod/super_method_spec.rb
+++ b/spec/ruby/core/unboundmethod/super_method_spec.rb
@@ -29,18 +29,14 @@ describe "UnboundMethod#super_method" do
# https://github.com/jruby/jruby/issues/7240
context "after changing an inherited methods visibility" do
- ruby_version_is ""..."3.2" do
- it "returns the expected super_method" do
- method = MethodSpecs::InheritedMethods::C.instance_method(:derp)
- method.super_method.owner.should == MethodSpecs::InheritedMethods::A
- end
+ it "calls the proper super method" do
+ method = MethodSpecs::InheritedMethods::C.instance_method(:derp)
+ method.bind(MethodSpecs::InheritedMethods::C.new).call.should == 'BA'
end
- ruby_version_is "3.2" do
- it "returns the expected super_method" do
- method = MethodSpecs::InheritedMethods::C.instance_method(:derp)
- method.super_method.owner.should == MethodSpecs::InheritedMethods::B
- end
+ it "returns the expected super_method" do
+ method = MethodSpecs::InheritedMethods::C.instance_method(:derp)
+ method.super_method.owner.should == MethodSpecs::InheritedMethods::A
end
end