Skip to content

Exception backtrace has user source as location for stdlib methods #1414

@segiddins

Description

@segiddins

I ran some code that boiled down to ruby -e 'File.join :foo, nil'.

On MRI 2.5.1, the exception is:

Traceback (most recent call last):
	1: from -e:1:in `<main>'
-e:1:in `join': no implicit conversion of Symbol into String (TypeError)

In truffleruby 1.0.0-rc5, I get:

-e:1:in `coerce_to_failed': Coercion error: :foo.to_str => String failed (TypeError)
	from -e:1:in `execute_coerce_to'
	from -e:1:in `coerce_to'
	from -e:1:in `StringValue'
	from -e:1:in `coerce_to_path'
	from -e:1:in `join'
	from -e:1:in `<main>'

Which points to methods that aren't on line 1, which I found confusing when trying to hunt down which piece of my code had an issue (trust me, it was more confusing when the stack trace was longer and there was more than 1 line of code)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions