diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-07-04 16:54:34 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-08-29 13:24:00 +0900 |
commit | 761346a9604ca2c79777d1d67fb5dcc3c30dbf69 (patch) | |
tree | a06734056a992fdbb3ffa8c8d0ae5ce4e0a639aa /test | |
parent | d3e0bc07e2909f1105dcde4febb0e120eaea30b6 (diff) | |
download | ruby-761346a9604ca2c79777d1d67fb5dcc3c30dbf69.tar.gz |
Show the previous definition location,
when reopened class/module redefinition mismatched the previous
definition. [Feature #11460]
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_class.rb | 10 | ||||
-rw-r--r-- | test/ruby/test_module.rb | 10 |
2 files changed, 12 insertions, 8 deletions
diff --git a/test/ruby/test_class.rb b/test/ruby/test_class.rb index f07a1cdc40..6960ab5971 100644 --- a/test/ruby/test_class.rb +++ b/test/ruby/test_class.rb @@ -591,15 +591,17 @@ class TestClass < Test::Unit::TestCase def test_redefinition_mismatch m = Module.new - m.module_eval "A = 1" - assert_raise_with_message(TypeError, /is not a class/) { + m.module_eval "A = 1", __FILE__, line = __LINE__ + e = assert_raise_with_message(TypeError, /is not a class/) { m.module_eval "class A; end" } + assert_include(e.message, "#{__FILE__}:#{line}: previous definition") n = "M\u{1f5ff}" - m.module_eval "#{n} = 42" - assert_raise_with_message(TypeError, "#{n} is not a class") { + m.module_eval "#{n} = 42", __FILE__, line = __LINE__ + e = assert_raise_with_message(TypeError, /#{n} is not a class/) { m.module_eval "class #{n}; end" } + assert_include(e.message, "#{__FILE__}:#{line}: previous definition") assert_separately([], "#{<<~"begin;"}\n#{<<~"end;"}") begin; diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb index d56e63e4be..7bb2261ffb 100644 --- a/test/ruby/test_module.rb +++ b/test/ruby/test_module.rb @@ -2383,15 +2383,17 @@ class TestModule < Test::Unit::TestCase def test_redefinition_mismatch m = Module.new - m.module_eval "A = 1" - assert_raise_with_message(TypeError, /is not a module/) { + m.module_eval "A = 1", __FILE__, line = __LINE__ + e = assert_raise_with_message(TypeError, /is not a module/) { m.module_eval "module A; end" } + assert_include(e.message, "#{__FILE__}:#{line}: previous definition") n = "M\u{1f5ff}" - m.module_eval "#{n} = 42" - assert_raise_with_message(TypeError, "#{n} is not a module") { + m.module_eval "#{n} = 42", __FILE__, line = __LINE__ + e = assert_raise_with_message(TypeError, /#{n} is not a module/) { m.module_eval "module #{n}; end" } + assert_include(e.message, "#{__FILE__}:#{line}: previous definition") assert_separately([], <<-"end;") Etc = (class C\u{1f5ff}; self; end).new |