Change the argument order of 'set-fields' to match that of 'set-fields'.
authorMark H Weaver <mhw@netris.org>
Sat, 10 Nov 2012 21:05:24 +0000 (16:05 -0500)
committerMark H Weaver <mhw@netris.org>
Sat, 10 Nov 2012 21:05:24 +0000 (16:05 -0500)
* module/srfi/srfi-9/gnu.scm (set-fields): Swap order of first two
  arguments.

* test-suite/tests/srfi-9.test: Update tests.

module/srfi/srfi-9/gnu.scm
test-suite/tests/srfi-9.test

index 6322756..eb35064 100644 (file)
@@ -39,8 +39,8 @@
    #t (define-immutable-record-type name ctor pred fields ...)
    name ctor pred fields ...))
 
-(define-syntax-rule (set-field (getter ...) s expr)
-  (%set-fields #t (set-field (getter ...) s expr) ()
+(define-syntax-rule (set-field s (getter ...) expr)
+  (%set-fields #t (set-field s (getter ...) expr) ()
                s ((getter ...) expr)))
 
 (define-syntax-rule (set-fields s . rest)
index cd313ac..6179b90 100644 (file)
 
   (pass-if "set-field"
     (let ((s (make-foo (make-bar 1 2))))
-      (and (equal? (set-field (foo-x bar-j) s 3)
+      (and (equal? (set-field s (foo-x bar-j) 3)
                    (make-foo (make-bar 1 3)))
-           (equal? (set-field (foo-z) s 'bar)
+           (equal? (set-field s (foo-z) 'bar)
                    (let ((s2 (make-foo (make-bar 1 2))))
                      (set-foo-z! s2 'bar)
                      s2))
 
   (pass-if-exception "set-field on wrong struct type" exception:wrong-type-arg
     (let ((s (make-bar (make-foo 5) 2)))
-      (set-field (foo-x bar-j) s 3)))
+      (set-field s (foo-x bar-j) 3)))
 
   (pass-if-exception "set-field on number" exception:wrong-type-arg
-    (set-field (foo-x bar-j) 4 3))
+    (set-field 4 (foo-x bar-j) 3))
 
   (pass-if-equal "set-field with unknown first getter"
       '(syntax-error set-fields "unknown getter"
-                     (set-field (blah) s 3)
+                     (set-field s (blah) 3)
                      blah)
     (catch 'syntax-error
       (lambda ()
         (compile '(let ((s (make-bar (make-foo 5) 2)))
-                    (set-field (blah) s 3))
+                    (set-field s (blah) 3))
                  #:env (current-module))
         #f)
       (lambda (key whom what src form subform)
 
   (pass-if-equal "set-field with unknown second getter"
       '(syntax-error set-fields "unknown getter"
-                     (set-field (bar-j blah) s 3)
+                     (set-field s (bar-j blah) 3)
                      blah)
     (catch 'syntax-error
       (lambda ()
         (compile '(let ((s (make-bar (make-foo 5) 2)))
-                    (set-field (bar-j blah) s 3))
+                    (set-field s (bar-j blah) 3))
                  #:env (current-module))
         #f)
       (lambda (key whom what src form subform)
 
   (pass-if "set-fields"
     (let ((s (make-foo (make-bar 1 2))))
-      (and (equal? (set-field (foo-x bar-j) s 3)
+      (and (equal? (set-field s (foo-x bar-j) 3)
                    (make-foo (make-bar 1 3)))
            (equal? (set-fields s
                      ((foo-x bar-j) 3)
 
       (pass-if "set-field"
         (let ((s (make-foo (make-bar 1 2))))
-          (and (equal? (set-field (foo-x bar-j) s 3)
+          (and (equal? (set-field s (foo-x bar-j) 3)
                        (make-foo (make-bar 1 3)))
-               (equal? (set-field (foo-z) s 'bar)
+               (equal? (set-field s (foo-z) 'bar)
                        (let ((s2 (make-foo (make-bar 1 2))))
                          (set-foo-z! s2 'bar)
                          s2))
                (equal? s (make-foo (make-bar 1 2)))))))
 
-    (pass-if "set-fields"
+    (pass-if "set-fields"
 
       (let ((s (make-foo (make-bar 1 2))))
-        (and (equal? (set-field (foo-x bar-j) s 3)
+        (and (equal? (set-field s (foo-x bar-j) 3)
                      (make-foo (make-bar 1 3)))
              (equal? (set-fields s
                        ((foo-x bar-j) 3)
   (pass-if "set-field"
     (let ((p (make-person 30 "foo@example.com"
                           (make-address "Foo" "Paris" "France"))))
-      (and (equal? (set-field (person-address address-street) p "Bar")
+      (and (equal? (set-field p (person-address address-street) "Bar")
                    (make-person 30 "foo@example.com"
                                 (make-address "Bar" "Paris" "France")))
-           (equal? (set-field (person-email) p "bar@example.com")
+           (equal? (set-field p (person-email) "bar@example.com")
                    (make-person 30 "bar@example.com"
                                 (make-address "Foo" "Paris" "France")))
            (equal? p (make-person 30 "foo@example.com"
 
         (let ((p (make-person 30 "foo@example.com"
                               (make-address "Foo" "Paris" "France"))))
-          (and (equal? (set-field (person-address address-street) p "Bar")
+          (and (equal? (set-field p (person-address address-street) "Bar")
                        (make-person 30 "foo@example.com"
                                     (make-address "Bar" "Paris" "France")))
-               (equal? (set-field (person-email) p "bar@example.com")
+               (equal? (set-field p (person-email) "bar@example.com")
                        (make-person 30 "bar@example.com"
                                     (make-address "Foo" "Paris" "France")))
                (equal? p (make-person 30 "foo@example.com"