(do ((form body (cdr form)))
((null form) nil)
(when (atom (car form))
- ;; FIXME: detect duplicate tags
+ (when (assoc (car form) tags)
+ (ip-error "The tag :A appears more than once in a tagbody."))
(push (cons (car form) (cdr form)) tags)
(push (cons (car form) #'go-to-tag) (env-tags env)))))
;; And then evaluate the forms in the body, starting from the
(%eval form env))
(compiler-environment-too-complex-error (condition)
(declare (ignore condition))
- ;; FIXME: this could be a really annoying warning. It should
- ;; have its own class.
- (sb!int:style-warn
- "~@<Native lexical environment too complex for SB-EVAL ~
- to evaluate ~S, falling back to SIMPLE-EVAL-IN-LEXENV. ~
- Lexenv: ~S~:@>"
- form lexenv)
+ (sb!int:style-warn 'sb!kernel:lexical-environment-too-complex
+ :form form :lexenv lexenv)
(sb!int:simple-eval-in-lexenv form lexenv)))))