Skip to content

Instantly share code, notes, and snippets.

@ko1
Created February 29, 2024 08:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ko1/ee47ff7ba1eb8d2beaee74f4124a348d to your computer and use it in GitHub Desktop.
Save ko1/ee47ff7ba1eb8d2beaee74f4124a348d to your computer and use it in GitHub Desktop.
diff --git a/test/ruby/test_call.rb b/test/ruby/test_call.rb
index 09146efa41..69ac49e448 100644
--- a/test/ruby/test_call.rb
+++ b/test/ruby/test_call.rb
@@ -3,7 +3,7 @@
require '-test-/iter'
class TestCall < Test::Unit::TestCase
- def aaa(a, b=100, *rest)
+ def aaa(a, b=100, *rest, &_)
res = [a, b]
res += rest if rest
return res
@@ -1119,14 +1119,14 @@ def test_call_rb_call_iseq_large_array_splat_fail
extend Bug::Iter::Yield
l = ->(*a){}
- def self.a; end
- def self.b(a=1) end
- def self.c(k: 1) end
- def self.d(**kw) end
- def self.e(k: 1, **kw) end
- def self.f(a=1, k: 1) end
- def self.g(a=1, **kw) end
- def self.h(a=1, k: 1, **kw) end
+ def self.a(&_); end
+ def self.b(a=1, &_) end
+ def self.c(k: 1, &_) end
+ def self.d(**kw, &_) end
+ def self.e(k: 1, **kw, &_) end
+ def self.f(a=1, k: 1, &_) end
+ def self.g(a=1, **kw, &_) end
+ def self.h(a=1, k: 1, **kw, &_) end
(:a..:h).each do |meth|
assert_raise_with_message(ArgumentError, /wrong number of arguments \(given #{OVER_STACK_LEN}, expected 0(\.\.[12])?\)/) do
@@ -1139,49 +1139,49 @@ def test_call_rb_call_iseq_large_array_splat_pass
extend Bug::Iter::Yield
l = ->(*a){a.length}
- def self.a(*a) a.length end
+ def self.a(*a, &_) a.length end
assert_equal OVER_STACK_LEN, yield_block(:a, *OVER_STACK_ARGV, &l)
- def self.b(_, *a) a.length end
+ def self.b(_, *a, &_) a.length end
assert_equal (OVER_STACK_LEN - 1), yield_block(:b, *OVER_STACK_ARGV, &l)
- def self.c(_, *a, _) a.length end
+ def self.c(_, *a, _, &_) a.length end
assert_equal (OVER_STACK_LEN - 2), yield_block(:c, *OVER_STACK_ARGV, &l)
- def self.d(b=1, *a) a.length end
+ def self.d(b=1, *a, &_) a.length end
assert_equal (OVER_STACK_LEN - 1), yield_block(:d, *OVER_STACK_ARGV, &l)
- def self.e(b=1, *a, _) a.length end
+ def self.e(b=1, *a, _, &_) a.length end
assert_equal (OVER_STACK_LEN - 2), yield_block(:e, *OVER_STACK_ARGV, &l)
- def self.f(b, *a) a.length end
+ def self.f(b, *a, &_) a.length end
assert_equal (OVER_STACK_LEN - 1), yield_block(:f, *OVER_STACK_ARGV, &l)
- def self.g(*a, k: 1) a.length end
+ def self.g(*a, k: 1, &_) a.length end
assert_equal OVER_STACK_LEN, yield_block(:g, *OVER_STACK_ARGV, &l)
- def self.h(*a, **kw) a.length end
+ def self.h(*a, **kw, &_) a.length end
assert_equal OVER_STACK_LEN, yield_block(:h, *OVER_STACK_ARGV, &l)
- def self.i(*a, k: 1, **kw) a.length end
+ def self.i(*a, k: 1, **kw, &_) a.length end
assert_equal OVER_STACK_LEN, yield_block(:h, *OVER_STACK_ARGV, &l)
- def self.j(b=1, *a, k: 1) a.length end
+ def self.j(b=1, *a, k: 1, &_) a.length end
assert_equal (OVER_STACK_LEN - 1), yield_block(:j, *OVER_STACK_ARGV, &l)
- def self.k(b=1, *a, **kw) a.length end
+ def self.k(b=1, *a, **kw, &_) a.length end
assert_equal (OVER_STACK_LEN - 1), yield_block(:k, *OVER_STACK_ARGV, &l)
- def self.l(b=1, *a, k: 1, **kw) a.length end
+ def self.l(b=1, *a, k: 1, **kw, &_) a.length end
assert_equal (OVER_STACK_LEN - 1), yield_block(:l, *OVER_STACK_ARGV, &l)
- def self.m(b=1, *a, _, k: 1) a.length end
+ def self.m(b=1, *a, _, k: 1, &_) a.length end
assert_equal (OVER_STACK_LEN - 2), yield_block(:m, *OVER_STACK_ARGV, &l)
- def self.n(b=1, *a, _, **kw) a.length end
+ def self.n(b=1, *a, _, **kw, &_) a.length end
assert_equal (OVER_STACK_LEN - 2), yield_block(:n, *OVER_STACK_ARGV, &l)
- def self.o(b=1, *a, _, k: 1, **kw) a.length end
+ def self.o(b=1, *a, _, k: 1, **kw, &_) a.length end
assert_equal (OVER_STACK_LEN - 2), yield_block(:o, *OVER_STACK_ARGV, &l)
end
diff --git a/test/ruby/test_enum.rb b/test/ruby/test_enum.rb
index f7c8f012d8..c4abdf0192 100644
--- a/test/ruby/test_enum.rb
+++ b/test/ruby/test_enum.rb
@@ -144,7 +144,7 @@ def test_to_a_size_symbol
sym = Object.new
class << sym
include Enumerable
- def each
+ def each(&_)
self
end
@@ -159,7 +159,7 @@ def test_to_a_size_infinity
inf = Object.new
class << inf
include Enumerable
- def each
+ def each(&_)
self
end
diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb
index 09a6541e90..86f15a14ce 100644
--- a/test/ruby/test_exception.rb
+++ b/test/ruby/test_exception.rb
@@ -675,7 +675,7 @@ def test_rescue_splat_argument
end
end
- def m
+ def m(&_)
m(&->{return 0})
42
end
diff --git a/test/ruby/test_iterator.rb b/test/ruby/test_iterator.rb
index 820d5591c1..8a4e3c0336 100644
--- a/test/ruby/test_iterator.rb
+++ b/test/ruby/test_iterator.rb
@@ -162,15 +162,15 @@ def test_itertest
IterTest.new([[8,8]]).each8 {|*x| assert_equal([[8,8]], x)}
end
- def m(var)
+ def m(var, &_)
var
end
- def m1
+ def m1(&_)
m(block_given?)
end
- def m2
+ def m2(&_)
m(block_given?,&proc{})
end
@@ -284,7 +284,7 @@ def test_return2
def proc_call(&b)
b.call
end
- def proc_call2(b)
+ def proc_call2(b, &_)
b.call
end
def proc_yield()
diff --git a/test/ruby/test_keyword.rb b/test/ruby/test_keyword.rb
index a856a46569..76b4acc039 100644
--- a/test/ruby/test_keyword.rb
+++ b/test/ruby/test_keyword.rb
@@ -186,7 +186,7 @@ def test_keyword_splat_nil
# cfunc call
assert_equal(nil, p(**nil))
- def self.a0; end
+ def self.a0(&_); end
assert_equal(nil, a0(**nil))
assert_equal(nil, :a0.to_proc.call(self, **nil))
assert_equal(nil, a0(**nil, &:block))
@@ -3446,7 +3446,7 @@ def test_rb_yield_block_kwsplat
class << c
alias m yield_block
end
- def c.c(*args)
+ def c.c(*args, &_)
args
end
assert_equal([], c.m(:c, **{}))
@@ -3458,7 +3458,7 @@ def c.c(*args)
assert_equal([h3], c.m(:c, a: 1, **h2))
c.singleton_class.remove_method(:c)
- def c.c; end
+ def c.c(&_); end
assert_nil(c.m(:c, **{}))
assert_nil(c.m(:c, **kw))
assert_raise(ArgumentError) { c.m(:c, **h) }
@@ -3468,7 +3468,7 @@ def c.c; end
assert_raise(ArgumentError) { c.m(:c, a: 1, **h2) }
c.singleton_class.remove_method(:c)
- def c.c(args)
+ def c.c(args, &_)
args
end
assert_raise(ArgumentError) { c.m(:c, **{}) }
@@ -3497,7 +3497,7 @@ def c.c(**args)
assert_raise(ArgumentError) { c.m(:c, h3, &m) }
c.singleton_class.remove_method(:c)
- def c.c(arg, **args)
+ def c.c(arg, **args, &_)
[arg, args]
end
assert_raise(ArgumentError) { c.m(:c, **{}, &m) }
@@ -3512,7 +3512,7 @@ def c.c(arg, **args)
assert_equal([h3, kw], c.m(:c, h3))
c.singleton_class.remove_method(:c)
- def c.c(arg=1, **args)
+ def c.c(arg=1, **args, &_)
[arg, args]
end
assert_equal([1, kw], c.m(:c, **{}))
@@ -4033,7 +4033,7 @@ class << (o = Object.new)
def bar(k2: 'v2')
end
- def foo
+ def foo &_
bar(k1: 1)
end
end
diff --git a/test/ruby/test_lambda.rb b/test/ruby/test_lambda.rb
index 7738034240..e4394e429a 100644
--- a/test/ruby/test_lambda.rb
+++ b/test/ruby/test_lambda.rb
@@ -210,7 +210,7 @@ def test_arity_error
end
end
- def foo
+ def foo(&_)
assert_equal(nil, ->(&b){ b }.call)
end
diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb
index ec06f4c50a..66fffa05f2 100644
--- a/test/ruby/test_method.rb
+++ b/test/ruby/test_method.rb
@@ -302,7 +302,7 @@ def o.bar; :bar; end
def test_define_method_no_proc
o = Object.new
- def o.foo(c)
+ def o.foo(c, &_)
c.class_eval { define_method(:foo) }
end
c = Class.new
@@ -336,7 +336,7 @@ def test_define_singleton_method_no_proc
}
bug11283 = '[ruby-core:69655] [Bug #11283]'
- def o.define(n)
+ def o.define(n, &_) # TODO
define_singleton_method(n)
end
assert_raise(ArgumentError, bug11283) {o.define(:bar) {:bar}}
diff --git a/test/ruby/test_optimization.rb b/test/ruby/test_optimization.rb
index 70b6bde6ed..f09b55e9df 100644
--- a/test/ruby/test_optimization.rb
+++ b/test/ruby/test_optimization.rb
@@ -551,11 +551,11 @@ def foo(n)
end
class Bug10557
- def [](_)
+ def [](_, &_)
block_given?
end
- def []=(_, _)
+ def []=(_, _, &_)
block_given?
end
end
@@ -577,7 +577,7 @@ def test_string_freeze_block
begin;
class String
undef freeze
- def freeze
+ def freeze &_
block_given?
end
end
diff --git a/test/ruby/test_proc.rb b/test/ruby/test_proc.rb
index 2f91da8aa8..12cfda8fa1 100644
--- a/test/ruby/test_proc.rb
+++ b/test/ruby/test_proc.rb
@@ -185,7 +185,7 @@ def m1(var)
var
end
- def m_block_given?
+ def m_block_given? &_
m1(block_given?)
end
@@ -224,7 +224,7 @@ def test_block_given_method_to_proc
def test_block_persist_between_calls
bug8341 = '[Bug #8341]'
o = Object.new
- def o.m1(top=true)
+ def o.m1(top=true, &_)
if top
[block_given?, @m.call(false)]
else
diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb
index 2dd6ca3af8..8dfdfcf376 100644
--- a/test/ruby/test_rubyoptions.rb
+++ b/test/ruby/test_rubyoptions.rb
@@ -897,7 +897,7 @@ def test_segv_setproctitle
}
end
- def assert_crash_report(path, cmd = nil)
+ def assert_crash_report(path, cmd = nil, &_) # TODO: the block should be used
Dir.mktmpdir("ruby_crash_report") do |dir|
list = SEGVTest::ExpectedStderrList
if cmd
diff --git a/test/ruby/test_symbol.rb b/test/ruby/test_symbol.rb
index 67a8303c54..e9edefb51c 100644
--- a/test/ruby/test_symbol.rb
+++ b/test/ruby/test_symbol.rb
@@ -296,11 +296,11 @@ def o.foo(x, y); x + y; end
assert_raise(ArgumentError) { :foo.to_proc.call }
end
- def m_block_given?
+ def m_block_given?(&_)
block_given?
end
- def m2_block_given?(m = nil)
+ def m2_block_given?(m = nil, &_)
if m
[block_given?, m.call(self)]
else
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index 42108f955f..5cf9e956ff 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -1360,7 +1360,7 @@ def test_cmdarg_in_paren
def test_block_after_cmdarg_in_paren
bug11873 = '[ruby-core:72482] [Bug #11873]'
- def bug11873.p(*);end;
+ def bug11873.p(*, &_);end;
assert_raise(LocalJumpError, bug11873) do
bug11873.instance_eval do
@@ -2218,7 +2218,7 @@ def with_script_lines
end
end
- def caller_lineno(*)
+ def caller_lineno(*, &_)
caller_locations(1, 1)[0].lineno
end
end
diff --git a/test/rubygems/helper.rb b/test/rubygems/helper.rb
index 9ca2e269e3..23f5943379 100644
--- a/test/rubygems/helper.rb
+++ b/test/rubygems/helper.rb
@@ -1363,7 +1363,7 @@ def v(string)
#
# Yields the +specification+ to the block, if given
- def vendor_gem(name = "a", version = 1)
+ def vendor_gem(name = "a", version = 1, &_) # TODO: maybe a bug to ignore the given block
directory = File.join "vendor", name
FileUtils.mkdir_p directory
diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb
index e71b2f5ff6..81ee5a4679 100644
--- a/test/rubygems/test_gem_remote_fetcher.rb
+++ b/test/rubygems/test_gem_remote_fetcher.rb
@@ -656,7 +656,7 @@ def test_fetch_http
@fetcher = fetcher
url = "http://gems.example.com/redirect"
- def fetcher.request(uri, request_class, last_modified = nil)
+ def fetcher.request(uri, request_class, last_modified = nil, &_)
url = "http://gems.example.com/redirect"
if defined? @requested
res = Gem::Net::HTTPOK.new nil, 200, nil
@@ -681,7 +681,7 @@ def test_fetch_http_redirects
@fetcher = fetcher
url = "http://gems.example.com/redirect"
- def fetcher.request(uri, request_class, last_modified = nil)
+ def fetcher.request(uri, request_class, last_modified = nil, &_)
url = "http://gems.example.com/redirect"
res = Gem::Net::HTTPMovedPermanently.new nil, 301, nil
res.add_field "Location", url
@@ -700,7 +700,7 @@ def test_fetch_http_redirects_without_location
@fetcher = fetcher
url = "http://gems.example.com/redirect"
- def fetcher.request(uri, request_class, last_modified = nil)
+ def fetcher.request(uri, request_class, last_modified = nil, &_)
res = Gem::Net::HTTPMovedPermanently.new nil, 301, nil
res
end
@@ -726,7 +726,7 @@ def assert_fetch_s3(url, signature, token=nil, region="us-east-1", instance_prof
$fetched_uri = nil
$instance_profile = instance_profile_json
- def fetcher.request(uri, request_class, last_modified = nil)
+ def fetcher.request(uri, request_class, last_modified = nil, &_)
$fetched_uri = uri
res = Gem::Net::HTTPOK.new nil, 200, nil
def res.body
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment