diff options
author | Chris Salzberg <[email protected]> | 2022-08-09 22:22:23 +0900 |
---|---|---|
committer | Shugo Maeda <[email protected]> | 2022-09-24 09:41:15 +0900 |
commit | 82ac4a2399516a3ffda750b815c244aad6d38277 (patch) | |
tree | 5f4003ea9c974dd75d30dbde7113c9539345a11d /spec/ruby/core | |
parent | a74f4cded2ba4183b680c14f5c9aa7151afaad58 (diff) |
Support using at toplevel in wrapped script
Allow refinements to be used at the toplevel within a script that is
loaded under a module.
Fixes [Bug #18960]
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6226
Diffstat (limited to 'spec/ruby/core')
-rw-r--r-- | spec/ruby/core/main/fixtures/using.rb | 1 | ||||
-rw-r--r-- | spec/ruby/core/main/fixtures/using_in_main.rb | 5 | ||||
-rw-r--r-- | spec/ruby/core/main/fixtures/using_in_method.rb | 5 | ||||
-rw-r--r-- | spec/ruby/core/main/using_spec.rb | 20 |
4 files changed, 31 insertions, 0 deletions
diff --git a/spec/ruby/core/main/fixtures/using.rb b/spec/ruby/core/main/fixtures/using.rb new file mode 100644 index 0000000000..30713ef309 --- /dev/null +++ b/spec/ruby/core/main/fixtures/using.rb @@ -0,0 +1 @@ +using Module.new diff --git a/spec/ruby/core/main/fixtures/using_in_main.rb b/spec/ruby/core/main/fixtures/using_in_main.rb new file mode 100644 index 0000000000..a4a71c89cc --- /dev/null +++ b/spec/ruby/core/main/fixtures/using_in_main.rb @@ -0,0 +1,5 @@ +MAIN = self + +module X + MAIN.send(:using, Module.new) +end diff --git a/spec/ruby/core/main/fixtures/using_in_method.rb b/spec/ruby/core/main/fixtures/using_in_method.rb new file mode 100644 index 0000000000..d9ea2e9ef0 --- /dev/null +++ b/spec/ruby/core/main/fixtures/using_in_method.rb @@ -0,0 +1,5 @@ +def foo + using Module.new +end + +foo diff --git a/spec/ruby/core/main/using_spec.rb b/spec/ruby/core/main/using_spec.rb index f9f709f7dc..8a23970c4b 100644 --- a/spec/ruby/core/main/using_spec.rb +++ b/spec/ruby/core/main/using_spec.rb @@ -129,4 +129,24 @@ describe "main.using" do x.call_bar(cls2.new).should == 'bar' end + + it "raises error when called from method in wrapped script" do + -> do + load File.expand_path('../fixtures/using_in_method.rb', __FILE__), true + end.should raise_error(RuntimeError) + end + + it "raises error when called on toplevel from module" do + -> do + load File.expand_path('../fixtures/using_in_main.rb', __FILE__), true + end.should raise_error(RuntimeError) + end + + ruby_version_is "3.2" do + it "does not raise error when wrapped with module" do + -> do + load File.expand_path('../fixtures/using.rb', __FILE__), true + end.should_not raise_error + end + end end |