Opened 2 weeks ago

#1390 new defect

The behavior between `values` and `call/cc` is inconsistent.

Reported by: kooda Owned by:
Priority: minor Milestone: someday
Component: compiler Version: 4.12.0
Keywords: Cc:
Estimated difficulty:

Description

With regard to multiple return values, values and call/cc behave differently.

I think the call/cc case should not error out.

Also, the error message is a bit unhelpful (sometimes the call to call/cc is not known from the user, for example thread-join! uses it) and in some cases no call trace is available.

(print (values 1 2 3)) ;; no problem
 
(define (stuff)
  (call/cc
    (lambda (return)
      (return 1 2 3))))

(print (stuff)) ;; Error: bad argument count - received 3 but expected 1

Change History (0)

Note: See TracTickets for help on using tickets.