Juanma Barranquero writes: > Note that your patch has a false positive with the empty string, which is optimized to be always the same object (well, ISTR there are two, a unibyte > one and a multibyte one). > > (byte-compile '(let ((x "")) (eq x ""))) => Warning: `eq' called with literal string that may never match (arg 2) > > (let ((x "")) (eq x "")) => t Is this guaranteed or just an implementation detail? If it is not guaranteed, then "may never match" sounds correct. I miss a suggestion, though: the warning as it is is not actionable. It would be great if it could say something along the lines of "... (arg 2). Consider using `equal'." Best wishes, Arne -- Unpolitisch sein heißt politisch sein, ohne es zu merken. draketo.de