further debuggings of try
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>
Mon, 11 Sep 2017 21:11:37 +0000 (23:11 +0200)
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>
Mon, 11 Sep 2017 21:11:37 +0000 (23:11 +0200)
modules/language/python/compile.scm
modules/oop/pf-objects.scm

index a1c6509ad5f47e0fc4f76ab753d36b39819a1a11..c5c107a8f2def81a0520081ee45de56f3218f0f7 100644 (file)
       `(catch #t
          (lambda () ,(exp vs x))         
          (lambda (,tag ,o . ,l)
-           ,(let lp ((it  (if else (exp vs else) `(apply throw ,tag ,l)))
+           ,(let lp ((it  (if else (exp vs else) `(apply throw ,tag ,o ,l)))
                      (exc  exc))
               (match exc
                 ((((test . #f) code) . exc)
                      exc))
                 ((((test . as) code) . exc)
                  (let ((a (exp vs as)))
-                   (lp `(if (,(O 'testex) ,o ,tag ,(exp vs test) ,l)
+                   (lp `(if (,(O 'testex) ,tag ,o ,(exp vs test) ,l)
                             (let ((,a ,o))
                               (,(O 'set) ,a '__excargs__ ,l)
                               ,(exp vs code))
index ca9968adb1ced21e1a537d7456f404e253c44ae6..29d8fc957e7bea5df4917a65586e5c0f5081f43a 100644 (file)
@@ -603,7 +603,7 @@ explicitly tell it to not update etc.
   (let* ((classtag (ref tag '__class__ #f))
          (exid     (ref ex '__goops__ #f)))
     (let check-class ((tag classtag))
-      (if (eq? (ref tag '__goops__ #f) exid)
+      (if (and exid (eq? (ref tag '__goops__ #f) exid))
           #t
           (let lp ((parents (ref tag '__parents__ '())))
             (if (pair? parents)
@@ -629,7 +629,10 @@ explicitly tell it to not update etc.
        ((pyclass? ex)
         =>
         (lambda (cl)
-          (testex py tag cl l))))))
+          (testex py tag cl l)))
+       (else
+        #f))
+      #f))