This is a minimal reproduction project for an issue with the cider-nrepl debugger stepping to a dereferenced atom.
The problem arises when debugging a function using an atom. In this particular case the atom is declared within a let binding. In order to reproduce the issue:
With CIDER or Calva (and probably any cider-nrepl client implementing the nrepl debugger protocol):
- Load src/debug_atom_boom.clj
- Evaluate the
boom
top level functionn - Evaluate the
(boom)
expression in the Rich comment
Expected: The debugger should at the @!a
token and display the value 0
.
Actual: Things go boom! (Different symptoms in CIDER and Calva).
Examining what happens, using Calva, the debug response has a coor
of [3 1]
, meaning we should
- navigate into the top level function and go 3 sexpressions forward
- navigate down the
@!a
symbol and move 1 sexpression forward
But that second step isn't possible, the coor
should be [3]
as far as I understand things.