Issue #17743 has been updated by p8 (Petrik de Heus).


ufuk (Ufuk Kayserilioglu) wrote in #note-4:
> p8 (Petrik de Heus) wrote in #note-3:
> > ```
> > from hi.rb:2:in `say_hi' called with NilClass, Numeric, String
> > ```
> 
> What about keyword arguments that could have been supplied in any order? What about the block argument, if it was `nil` or not? 
 
Hmm, hadn't thought about those and I can see this being problematic...

> This is a huge drawback for a nice-to-have feature, though.

Hmm, yes I think I agree. This would probably be better handled by Static Typing and not allowing nils.

----------------------------------------
Feature #17743: Show argument types in backtrace
https://bugs.ruby-lang.org/issues/17743#change-91090

* Author: p8 (Petrik de Heus)
* Status: Open
* Priority: Normal
----------------------------------------
Given the following Ruby program:
``` ruby
def say_hi(person)
  puts message(person)
end

def message(person)
  "hi: #{person.name}"
end

say_hi(nil)
```

It would be helpful if the backtrace contained the types of the argumets:
```
hi.rb:6:in `message': undefined method `name' for nil:NilClass (NoMethodError)
	from hi.rb:2:in `say_hi' called with NilClass
	from hi.rb:9:in `<main>' called with NilClass
```

Inspired by the following Twitter thread: https://twitter.com/lzsthw/status/1374350046909628423




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>