Chong Yidong <[EMAIL PROTECTED]> writes: > M-: (setq foo 1) RET > M-: (let ((foo 2)) (error "foo")) RET > M-: foo ---> 2 > > After an error, the `let' form gets exited too, so the global variable > isn't rebound to its original value.
If that's really happening, it's a very serious bug in `let'. _Huge_ amounts of code depends on let dealing with errors correctly... However when I tried to reproduce it using your example above, I couldn't: (setq foo 1) 1 (let ((foo 2)) (error "foo")) [*get error backtrace, quit from backtrace*] foo 1 [I tried using both the *scratch* buffer and M-:] Are you sure your final test evaluation of `foo" above isn't done while the debugger's recursive edit (with backtrace) is still active? While in that recursive edit, you're still actually "inside" the let context. > One way to fix this is to replace every such construct with ... > OK? Er, no... -Miles -- `Suppose Korea goes to the World Cup final against Japan and wins,' Moon said. `All the past could be forgiven.' [NYT] _______________________________________________ emacs-pretest-bug mailing list [email protected] http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug
