Subject: Re: bug#12677: 24.2.50; `nreverse' complains that ("foo") is not `listp'
From: Stefan Monnier <[email-masked]>
To: "Drew Adams" <[email-masked]>
Cc: [email-masked]
Date: Thu, 18 Oct 2012 20:55:47 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

> Debugger entered--Lisp error: (wrong-type-argument listp ("c:/drews-lisp-20=
> /CONTRIB/"))

My guess is that the code ended up doing something morally equivalent
to (nreverse '(1 2 . 3)).  Try it and you'll see a similarly confusing
error message.
The reason is that by the time you get to the error, the list has
already been "nreversed" by side-effect, so the arg (which still points
to the cons cell which used to be the first element of the line) now
still points to the same cons-cell, but that cons-cell's cdr has been
set to nil because it was to become the last element of the
returned list.

I've installed a change in trunk which makes the above error include the
problematic non-nil tail, rather than the first element who looks
confusingly normal.

        Stefan