wingo pushed a commit to branch main
in repository guile.

commit 83449a8683abee5b71961f7fe891f3b8c894e14b
Author: Andy Wingo <wi...@pobox.com>
AuthorDate: Thu Nov 23 12:30:36 2023 +0100

    prompts avoid introducing throw; fixup peval test
    
    * test-suite/tests/peval.test ("partial evaluation"): Fix to expect
    raise-type-error from dynwind peval.  Update prompt expectation
    similarly.
    * module/language/tree-il/primitives.scm (call-with-prompt): Use
    raise-type-error.
---
 module/language/tree-il/primitives.scm | 9 +++------
 test-suite/tests/peval.test            | 4 ++--
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/module/language/tree-il/primitives.scm 
b/module/language/tree-il/primitives.scm
index 22a89063d..153c602b2 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -727,12 +727,9 @@
                src '() #f 'args #f '() (list args)
                (primcall apply handler (make-lexical-ref #f 'args args))
                #f)))
-            (primcall throw
-                      (const 'wrong-type-arg)
-                      (const "call-with-prompt")
-                      (const "Wrong type (expecting procedure): ~S")
-                      (primcall list handler)
-                      (primcall list handler))))))))
+            (primcall raise-type-error
+                      (const #("call-with-prompt" 3 "procedure"))
+                      handler)))))))
    (else #f)))
 
 (define-primitive-expander! 'abort-to-prompt*
diff --git a/test-suite/tests/peval.test b/test-suite/tests/peval.test
index 8a8f0124a..4b03c9ea0 100644
--- a/test-suite/tests/peval.test
+++ b/test-suite/tests/peval.test
@@ -1144,7 +1144,7 @@
    (let (tmp tmp) (_ _) ((toplevel foo) (toplevel baz))
         (seq (seq (if (primcall thunk? (lexical tmp _))
                       (call (lexical tmp _))
-                      (primcall throw . _))
+                      (primcall raise-type-error . _))
                   (primcall wind (lexical tmp _) (lexical tmp _)))
              (let (tmp) (_) ((toplevel bar))
                   (seq (seq (primcall unwind)
@@ -1234,7 +1234,7 @@
                          (primcall apply
                                    (lexical handler _)
                                    (lexical args _))))))
-             (primcall throw . _))))
+             (primcall raise-type-error . _))))
 
   (pass-if-peval
    ;; `while' without `break' or `continue' has no prompts and gets its

Reply via email to