mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 16:44:01 +02:00
error.c: receiver kwarg
* error.c (name_err_initialize_options): NameError#initialize accepts receiver. [Feature #14313] * error.c (nometh_err_initialize_options): pass keyword arguments to the super method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
f79d891aad
commit
c30aed0817
2 changed files with 77 additions and 1 deletions
|
@ -866,6 +866,14 @@ end.join
|
|||
error = NameError.new
|
||||
assert_raise(ArgumentError) {error.receiver}
|
||||
assert_equal("NameError", error.message)
|
||||
|
||||
error = NameError.new(receiver: receiver)
|
||||
assert_equal(["NameError", receiver],
|
||||
[error.message, error.receiver])
|
||||
|
||||
error = NameError.new("Message", :foo, receiver: receiver)
|
||||
assert_equal(["Message", receiver, :foo],
|
||||
[error.message, error.receiver, error.name])
|
||||
end
|
||||
|
||||
def test_nomethod_error_new_default
|
||||
|
@ -903,6 +911,44 @@ end.join
|
|||
[error.name, error.args, error.private_call?])
|
||||
end
|
||||
|
||||
def test_nomethod_error_new_receiver
|
||||
receiver = Object.new
|
||||
|
||||
error = NoMethodError.new
|
||||
assert_raise(ArgumentError) {error.receiver}
|
||||
|
||||
error = NoMethodError.new(receiver: receiver)
|
||||
assert_equal(receiver, error.receiver)
|
||||
|
||||
error = NoMethodError.new("Message")
|
||||
assert_raise(ArgumentError) {error.receiver}
|
||||
|
||||
error = NoMethodError.new("Message", receiver: receiver)
|
||||
assert_equal(["Message", receiver],
|
||||
[error.message, error.receiver])
|
||||
|
||||
error = NoMethodError.new("Message", :foo)
|
||||
assert_raise(ArgumentError) {error.receiver}
|
||||
|
||||
error = NoMethodError.new("Message", :foo, receiver: receiver)
|
||||
assert_equal(["Message", :foo, receiver],
|
||||
[error.message, error.name, error.receiver])
|
||||
|
||||
error = NoMethodError.new("Message", :foo, [1, 2])
|
||||
assert_raise(ArgumentError) {error.receiver}
|
||||
|
||||
error = NoMethodError.new("Message", :foo, [1, 2], receiver: receiver)
|
||||
assert_equal(["Message", :foo, [1, 2], receiver],
|
||||
[error.message, error.name, error.args, error.receiver])
|
||||
|
||||
error = NoMethodError.new("Message", :foo, [1, 2], true)
|
||||
assert_raise(ArgumentError) {error.receiver}
|
||||
|
||||
error = NoMethodError.new("Message", :foo, [1, 2], true, receiver: receiver)
|
||||
assert_equal([:foo, [1, 2], true, receiver],
|
||||
[error.name, error.args, error.private_call?, error.receiver])
|
||||
end
|
||||
|
||||
def test_name_error_info_const
|
||||
obj = PrettyObject.new
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue