From b499ad6749abac498c8e2b54ddfd703f9043c6e1 Mon Sep 17 00:00:00 2001 From: Christopher Aue Date: Fri, 28 Jul 2017 17:38:40 +0200 Subject: Fixed return value of Module#include and #prepend --- mrblib/00class.rb | 2 ++ test/t/module.rb | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mrblib/00class.rb b/mrblib/00class.rb index f3762e8d0..1a2d833c8 100644 --- a/mrblib/00class.rb +++ b/mrblib/00class.rb @@ -15,6 +15,7 @@ class Module m.append_features(self) m.included(self) end + self end def prepend(*args) @@ -22,5 +23,6 @@ class Module m.prepend_features(self) m.prepended(self) end + self end end diff --git a/test/t/module.rb b/test/t/module.rb index 419b0bfd5..7b539e683 100644 --- a/test/t/module.rb +++ b/test/t/module.rb @@ -309,10 +309,14 @@ assert('Module#include', '15.2.2.4.27') do Const4Include = 42 end module Test4Include2 - include Test4Include + @include_result = include Test4Include + class << self + attr_reader :include_result + end end assert_equal 42, Test4Include2.const_get(:Const4Include) + assert_equal Test4Include2, Test4Include2.include_result end assert('Module#include?', '15.2.2.4.28') do @@ -540,6 +544,18 @@ end assert_equal(expected, obj.m1) end + assert('Module#prepend result') do + module TestPrepended; end + module TestPrependResult + @prepend_result = prepend TestPrepended + class << self + attr_reader :prepend_result + end + end + + assert_equal TestPrependResult, TestPrependResult.prepend_result + end + # mruby shouldn't be affected by this since there is # no visibility control (yet) assert('Module#prepend public') do -- cgit v1.2.3