there is a slight behavior change in this patch:
- before: in^t a;, returns our internal error message (no symbol at given location)
- after: `in^t a, returns null, and client displays their message (e.g. e.g. "the element can't be renamed" in vscode).
both are sensible according LSP, and we'd save one rename call in the later case.
Agree that this behavior is OK per the spec, but do we actually prefer it/why the change?
Seems like clients are marginally more likely to handle null incorrectly/silently, and we give up control over the message.