diff options
author | Jeremy Evans <code@jeremyevans.net> | 2020-02-11 11:56:34 -0800 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2020-02-11 12:44:23 -0800 |
commit | 7a288df7b85d3565f369b305f225c2cd5baa5905 (patch) | |
tree | 994eea5130e4d2e78773b4ee383b63ff46d43740 /bootstraptest | |
parent | ea32715e004dc8f56dc599883d3183d7b2635f81 (diff) | |
download | ruby-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')
-rw-r--r-- | bootstraptest/test_jump.rb | 23 |
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 +} |