Skip to content

Show the full error trace with Cr 0.30.0+ #13

@bew

Description

@bew

With Crystal 0.30.0+, a compilation error only shows the last frame, e.g:

Showing last frame. Use --error-trace for full trace.

In /usr/lib/crystal/json/from_json.cr:136:13

 136 | yield T.new(pull)
               ^--
Error: wrong number of arguments for 'M.new' (given 1, expected 0)

Overloads are:
 - Reference.new()

When the full error trace would be:

In some_file.cr:31:5

 31 | p Q.from_json(json_queue)
          ^--------
Error: instantiating 'Array(M).class#from_json(String)'


In /usr/local/Cellar/crystal/0.30.1/src/json/from_json.cr:13:3

 13 | new parser
      ^--
Error: instantiating 'new(JSON::PullParser)'


In /usr/local/Cellar/crystal/0.30.1/src/json/from_json.cr:128:3

 128 | new(pull) do |element|
       ^--
Error: instantiating 'new(JSON::PullParser)'


In /usr/local/Cellar/crystal/0.30.1/src/json/from_json.cr:135:8

 135 | pull.read_array do
            ^---------
Error: instantiating 'JSON::PullParser#read_array()'


In /usr/local/Cellar/crystal/0.30.1/src/json/from_json.cr:135:8

 135 | pull.read_array do
            ^---------
Error: instantiating 'JSON::PullParser#read_array()'


In /usr/local/Cellar/crystal/0.30.1/src/json/from_json.cr:136:13

 136 | yield T.new(pull)
               ^--
Error: wrong number of arguments for 'M.new' (given 1, expected 0)

Overloads are:
 - Reference.new()

Which provides much more intel on the actual error.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions