apalache-mc / apalache

APALACHE: symbolic model checker for TLA+ and Quint
https://apalache-mc.org/
Apache License 2.0
429 stars 40 forks source link

[FEATURE] Overhaul error message treatment #943

Open shonfeder opened 3 years ago

shonfeder commented 3 years ago

During our retro last week, we discussed some ways we could change the error messaging and user-error handling that would improve learnability and user feedback, and perhaps even improve our development cycle. The two key points discussed were:

konnov commented 2 years ago

If you working on this right now, check #1127. It's related to error messages. I am going to use to produce message about unsupported operators.

shonfeder commented 2 years ago

Related to #802

shonfeder commented 2 years ago

As points of reference for the state of the art, the most lauded error messaging I'm aware of are in:

shonfeder commented 2 years ago

This should be a valuable resource in helping guide our design: https://web.eecs.umich.edu/~akamil/papers/iticse19.pdf

thpani commented 2 years ago

Related: #1654

shonfeder commented 2 years ago

See https://github.com/informalsystems/apalache/pull/1717/files#r868375855

Where I suggest:

- [Bug874.tla:4:17-4:27]: Cannot apply ["a" ↦ 2] to the argument "b" in (["a" ↦ 2])["b"].
+ [Bug874.tla:4:17-4:27]: Cannot access nonexistent field "b" in record ["a" ↦ 2] in (["a" ↦ 2])["b"].

This should go with a more systematic treatment of composing phrasing for errors on particular kinds of values.