- Use the span of the predicate
- Use the def's description instead of "struct/enum" (notably incorrect
for unions)
- Align formatting with other error messages
In most places, we use a span when emitting `expected...found` errors.
However, there were a couple of places where we didn't use any span,
resulting in hard-to-interpret error messages.
This commit attaches the relevant span to these notes, and additionally
switches over to using `note_expected_found` instead of manually
formatting the message