summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-04-05 22:17:34 +0900
committerGitHub <[email protected]>2019-04-05 22:17:34 +0900
commit293a7b2a6eb49c0395203a00eac6cbbdb372632b (patch)
tree9eb353fcbfe6db0f7ef4d31e2373fa5c99c1107c
parentf882b6908e4ac73a2fd59c0297c7f62e9bd01af5 (diff)
parent623e15936a6c8b8ecaf9dca341be80c9316fd8be (diff)
downloadmruby-293a7b2a6eb49c0395203a00eac6cbbdb372632b.tar.gz
mruby-293a7b2a6eb49c0395203a00eac6cbbdb372632b.zip
Merge pull request #4360 from shuujii/use-Module-alias_method-should-return-self-in-ISO-standard
`Module#alias_method` should return `self` in ISO standard
-rw-r--r--src/class.c2
-rw-r--r--test/t/module.rb11
2 files changed, 12 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c
index 5c5ee9d17..eaef787f7 100644
--- a/src/class.c
+++ b/src/class.c
@@ -1843,7 +1843,7 @@ mrb_mod_alias(mrb_state *mrb, mrb_value mod)
mrb_get_args(mrb, "nn", &new_name, &old_name);
mrb_alias_method(mrb, c, new_name, old_name);
- return mrb_nil_value();
+ return mod;
}
void
diff --git a/test/t/module.rb b/test/t/module.rb
index ec36855e8..da0f78fad 100644
--- a/test/t/module.rb
+++ b/test/t/module.rb
@@ -25,6 +25,17 @@ assert('Module', '15.2.2') do
assert_equal Class, Module.class
end
+assert('Module#alias_method', '15.2.2.4.8') do
+ cls = Class.new do
+ def foo
+ "FOO"
+ end
+ end
+
+ assert_same(cls, cls.alias_method(:bar, :foo))
+ assert_equal("FOO", cls.new.bar)
+end
+
# TODO not implemented ATM assert('Module.constants', '15.2.2.3.1') do
assert('Module#ancestors', '15.2.2.4.9') do