On 09.11.2016 17:45, Eli Zaretskii wrote: > I don't think I understand what you are suggesting. Can you show a > proposed patch, so I could see the light? See the attached patch. Or to take a step further, we might want to deprecate the `thing-at-point' property, and recommend to only use the `bounds-of-thing-at-point' property. This way, we get the string-ness guarantee automatically, and the bounds-of-thing-at-point function will work for all things (it currently fails for `number'). >>> If >>> there is such code, why would we want to break it? To what end? And >>> if no code uses this loophole, why do we care that it exists? >> >> To make thing-at-point behavior more consistent. > > It is consistent now. Put point on a number. Number is a sexp. Not all sexps are strings. (thing-at-point 'number) => 123 (thing-at-point 'sexp) => "123" That doesn't looks consistent to me. And there's no way to guess the return value type in advance without knowing which exact function is the thing's `thing-at-point' property. > The only way to make it inconsistent is to have > a 'thing-at-point' property that violates that, but we never do that > in Emacs proper, so if someone else does that, it would be their bug. number's `thing-at-point' property is not like the others.