failed AVER: (SB-C::LAMBDA-TOPLEVELISH-P (SB-C::LAMBDA-HOME SB-C::FUN))

Bug #1741545 reported by Paul F. Dietz on 2018-01-05
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Undecided
Unassigned

Bug Description

Occurs in code that has a bad form nested inside some lambdas and labels.

(defun f ()
  (let (y)
    (labels ((%r (f)
               (lambda (x)
                 ((setq y t)) ;; bad form
                 (%r f))))
      (%r (lambda (l) (foo l nil))))))

===>

failed AVER:
    (SB-C::LAMBDA-TOPLEVELISH-P (SB-C::LAMBDA-HOME SB-C::FUN))
[...]
  0: (SB-INT:BUG "~@<failed AVER: ~2I~_~S~:>" (SB-C::LAMBDA-TOPLEVELISH-P (SB-C::LAMBDA-HOME SB-C::FUN)))
  1: (SB-IMPL::%FAILED-AVER (SB-C::LAMBDA-TOPLEVELISH-P (SB-C::LAMBDA-HOME SB-C::FUN)))
      Locals:
        EXPR = (SB-C::LAMBDA-TOPLEVELISH-P (SB-C::LAMBDA-HOME SB-C::FUN))
  2: ((LAMBDA (SB-C::REF) :IN SB-C::SUBSTITUTE-LET-FUNARGS) #<SB-C::REF :%SOURCE-NAME F :LEAF #<SB-C::LAMBDA-VAR :%SOURCE-NAME F {100720CBD3}> {1007213D93}>)
  3: (SB-C::SUBSTITUTE-LEAF-IF #<CLOSURE (LAMBDA (SB-C::REF) :IN SB-C::SUBSTITUTE-LET-FUNARGS) {100721BCAB}> #<SB-C::CLAMBDA :%SOURCE-NAME SB-C::.ANONYMOUS. :%DEBUG-NAME (SB-C::XEP (LAMBDA # :IN F)) :KIND ..
  4: (SB-C::SUBSTITUTE-LET-FUNARGS #<SB-C::COMBINATION :FUN #<SB-C::REF :LEAF #<SB-C::CLAMBDA :%SOURCE-NAME %R :%DEBUG-NAME # :KIND :LET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FR..
  5: (SB-C::MAYBE-LET-CONVERT #<SB-C::CLAMBDA :%SOURCE-NAME %R :%DEBUG-NAME (LABELS %R :IN F) :KIND :LET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS (F) {100720CD83..
  6: (SB-C::DELETE-REF #<SB-C::REF :LEAF #<SB-C::CLAMBDA :%SOURCE-NAME %R :%DEBUG-NAME (LABELS %R :IN F) :KIND :LET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS (F)..
[...]

Stas Boukarev (stassats) wrote :

9573438922f33317042c8342e7eb18220423edf4

Changed in sbcl:
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers