Subject: bug#23543: 25.1.50; Incorrect key binding echoed by `M-x'

From: Drew Adams <[email-masked]>
Date: Sun, 15 May 2016 14:32:30 -0700 (PDT)

emacs -Q

(define-key global-map [remap eval-last-sexp] 'pp-eval-last-sexp)

Put point after a Lisp sexp somewhere, and do `M-x eval-last-sexp'.

You see this echoed:

  You can run the command 'eval-last-sexp' with C-x C-e

But that is incorrect.  You cannot run `eval-last-sexp'
using `C-x C-e', since it has been remapped to command
`pp-eval-last-sexp'.  If you use `C-x C-e' you invoke
the latter, not `eval-last-sexp'.

The code that causes this bugged behavior is the call
to `where-is-internal' in `execute-extended-command'.
It does, in effect:

(where-is-internal 'eval-last-sexp overriding-local-map t)

And that returns [24 5].  I'm no expert on `overriding-local-map',
but should it really be used here?  Seems like this is the cause,
but whatever the cause, the message is incorrect.

In GNU Emacs 25.1.50.1 (i686-pc-mingw32)
 of 2015-12-10
Repository revision: 6148555ee5a3d0139ae517803718b3e0357933c7
Windowing system distributor 'Microsoft Corp.', version 6.1.7601
Configured using:
 'configure --prefix=/c/Devel/emacs/snapshot/trunk --enable-checking=yes
 --enable-check-lisp-object-type --without-compress-install 'CFLAGS=-Og
 -ggdb3' LDFLAGS=-Lc:/Devel/emacs/lib 'CPPFLAGS=-DGC_MCHECK=1
 -Ic:/Devel/emacs/include''