Subject: 23.2; warning-suppress-types is void after defadvice

From: SAITO Takuya <[email-masked]>
Date: Wed, 26 May 2010 23:28:50 +0900 (JST)

Start Emacs-23.2 with "emacs -Q" and evaluate below
with \C-x\C-e in *scratch* buffer:

(defadvice forward-line (before sample activate compile) (setq xxx zzz))

(byte-compile (lambda () (setq xxx zzz)))

then, *Backtrace* buffer is displayed

Debugger entered--Lisp error: (void-variable warning-suppress-types)
  display-warning(bytecomp "Symbol's value as variable is void: warning-suppress-types" :error "*Compile-Log*")
  byte-compile-log-warning("Symbol's value as variable is void: warning-suppress-types" nil :error)
  byte-compile-report-error((void-variable warning-suppress-types))
  byte-compile((lambda nil (setq xxx zzz)))
  eval((byte-compile (lambda nil (setq xxx zzz))))
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)

ad-compile-function() binds warning-suppress-types with let.
I guess warnings.el is loaded inside of that let-binding.

In GNU Emacs 23.2.1 (i386-mingw-nt6.0.6002)
 of 2010-05-08 on G41R2F1
Windowing system distributor `Microsoft Corp.', version 6.0.6002
configured using `configure --with-gcc (3.4) --no-opt --cflags -Ic:/xpm/include'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: JPN
  value of $XMODIFIERS: nil
  locale-coding-system: cp932
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<help-echo> <help-echo> <down-mouse-1> <mouse-1> C-y 
C-p C-p C-e C-x C-e C-n C-x C-e q M-x r e p o <tab> 
r <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Mark set
forward-line
Entering debugger...
Back to top level.
Making completion list...

Load-path shadows:
None found.

Features:
(shadow sort mail-extr message ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-utils emacsbug help-mode easymenu view debug
warnings byte-opt bytecomp byte-compile advice help-fns advice-preload
japan-util tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32
disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev loaddefs button minibuffer faces cus-face files text-properties
overlay md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process multi-tty emacs)