Remove $void CPS expression type
[bpt/guile.git] / module / language / cps / verify.scm
index b965427..e005594 100644 (file)
@@ -1,6 +1,6 @@
 ;;; Continuation-passing style (CPS) intermediate language (IL)
 
-;; Copyright (C) 2013, 2014 Free Software Foundation, Inc.
+;; Copyright (C) 2013, 2014, 2015 Free Software Foundation, Inc.
 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -72,9 +72,6 @@
 
   (define (visit-cont-body cont k-env v-env)
     (match cont
-      (($ $kif kt kf)
-       (check-label kt k-env)
-       (check-label kf k-env))
       (($ $kreceive ($ $arity ((? symbol?) ...) () (or #f (? symbol?)) () #f) k)
        (check-label k k-env))
       (($ $kargs (name ...) (sym ...) body)
     (match fun
       (($ $fun (free ...) entry)
        (for-each (cut check-var <> v-env) free)
-       (visit-entry '() v-env))
+       (visit-entry entry '() v-env))
       (_
        (error "unexpected $fun" fun))))
 
   (define (visit-expression exp k-env v-env)
     (match exp
-      (($ $void)
-       #t)
       (($ $const val)
        #t)
       (($ $prim (? symbol? name))
        ;; the reference.
        (check-var proc v-env)
        (for-each (cut check-var <> v-env) arg))
+      (($ $branch kt ($ $primcall (? symbol? name) (arg ...)))
+       (check-var kt k-env)
+       (for-each (cut check-var <> v-env) arg))
+      (($ $branch kt ($ $values (arg ...)))
+       (check-var kt k-env)
+       (for-each (cut check-var <> v-env) arg))
       (($ $primcall (? symbol? name) (arg ...))
        (for-each (cut check-var <> v-env) arg))
       (($ $values (arg ...))