aboutsummaryrefslogtreecommitdiffstats
path: root/bootstraptest/test_jump.rb
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2020-02-11 11:56:34 -0800
committerJeremy Evans <code@jeremyevans.net>2020-02-11 12:44:23 -0800
commit7a288df7b85d3565f369b305f225c2cd5baa5905 (patch)
tree994eea5130e4d2e78773b4ee383b63ff46d43740 /bootstraptest/test_jump.rb
parentea32715e004dc8f56dc599883d3183d7b2635f81 (diff)
downloadruby-7a288df7b85d3565f369b305f225c2cd5baa5905.tar.gz
Make yield in singleton class definitions in methods a SyntaxError
This behavior was deprecated in 2.7 and scheduled to be removed in 3.0. Calling yield in a class definition outside a method is now a SyntaxError instead of a LocalJumpError, as well.
Diffstat (limited to 'bootstraptest/test_jump.rb')
-rw-r--r--bootstraptest/test_jump.rb23
1 files changed, 14 insertions, 9 deletions
diff --git a/bootstraptest/test_jump.rb b/bootstraptest/test_jump.rb
index 7944915862..18a2737ea3 100644
--- a/bootstraptest/test_jump.rb
+++ b/bootstraptest/test_jump.rb
@@ -296,14 +296,19 @@ assert_equal "true", %q{
s.return_eigenclass == class << s; self; end
}, '[ruby-core:21379]'
-assert_equal "true", %q{
- class Object
- def yield_eigenclass
- class << self
- yield self
+assert_match %r{Invalid yield}, %q{
+STDERR.reopen(STDOUT)
+begin
+ eval %q{
+ class Object
+ def yield_eigenclass
+ class << self
+ yield self
+ end
end
end
- end
- s = "foo"
- s.yield_eigenclass {|c| c == class << s; self; end }
-}, '[ruby-dev:40975]'
+ }
+rescue SyntaxError => e
+ e.message
+end
+}