1. move point to any word
2. type 'M-.' (xref-find-definitions)
3. an error is displayed correctly "No definitions found for: This"
But the problem is that an unrecognized word is added to the xref stack.
So the context menu shows "Go Back", and 'M-,' (xref-go-back) goes back
to that word.
FWIW, I'm not sure this is necessarily a bug. It looks like a bug in
your case, because you deliberately tricked Xref into using a word
that is definitely not a program symbol. But that is not the case in
a more reasonable situation, where point is on a symbol, but for some
reason the symbol's definition is not found, e.g., because the TAGS
table needs to be regenerated.
In case of error, point doesn't move. So there is no need to go back.
At this point, I was kind of feeling that this is a known-but-tolerated
behavior (that some might already be relying on, also known as "spacebar
heater" effect), but if it's still annoying, let's see about a fix.
It's not annoying, just surprises with the requirement to type extra ‘M-,’.
How's the attached patch?
Thanks. I expected a smaller change, but if this is still reliable,
then why not. At least, it works in cases that I tested.