Having trouble reproducing anything here. Are you able to share the file it crashed on? Any chance there are a bunch of weird heredocs in there? (I'm shooting in the dark here a bit.)kddnewton (Kevin Newton)
Previously we were just checking the token, which meant something like `{ a: 1, **{a: 2}.select { false } }` would warn. As esoteric as this is, it was possible. This also happily gets rid of the current_hash_keys field on parser, making...kddnewton (Kevin Newton)
There are actually 3 tokens in the Ruby grammar: the newline in a whitespace insensitive position that is ignored, a newline that is in a whitespace sensitive position that acts as a statement terminator, and a newline in a whitespace se...kddnewton (Kevin Newton)
This also more closely matches parse.y, and makes it easier to delineate which brace belongs to which type. https://github.com/ruby/prism/commit/43ed8c1f80kddnewton (Kevin Newton)
Now we fully match parse.y, and it is clearer to distinguish betewen backticks that are used for method names and backticks that begin xstring literals. https://github.com/ruby/prism/commit/a33c3ff7fekddnewton (Kevin Newton)