From d22ec6786bb2f413f780b42b34f4fe652c9254e7 Mon Sep 17 00:00:00 2001
From: dos-reis <gdr@axiomatics.org>
Date: Sat, 29 Oct 2011 09:15:29 +0000
Subject: 	* interp/compiler.boot (compHasFormat): Simplify type form.

---
 src/ChangeLog            | 4 ++++
 src/interp/compiler.boot | 4 ++--
 src/interp/daase.lisp    | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

(limited to 'src')

diff --git a/src/ChangeLog b/src/ChangeLog
index fc1b46f5..7991ebf1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2011-10-29  Gabriel Dos Reis  <gdr@cs.tamu.edu>
+
+	* interp/compiler.boot (compHasFormat): Simplify type form.
+
 2011-10-28  Gabriel Dos Reis  <gdr@cs.tamu.edu>
 
 	* interp/nruncomp.boot (mkDomainCatName): Remove.
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index cbae1bbe..768e1b5b 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -1248,7 +1248,7 @@ compHas(pred is ["has",a,b],m,e) ==
       --used in various other places to make the discrimination
 
 compHasFormat(pred is ["has",olda,b],e) ==
-  argl := rest $form
+  argl := $form.args
   formals := TAKE(#argl,$FormalMapVariableList)
   a := applySubst(pairList(formals,argl),olda)
   [a,.,e] := comp(a,$EmptyMode,e) or return nil
@@ -1259,7 +1259,7 @@ compHasFormat(pred is ["has",olda,b],e) ==
        mkList [MKQ op,mkList [mkTypeForm type for type in sig]]]
   b is ["Join",:l] or b is ["CATEGORY",.,:l] => 
      ["AND",:[compHasFormat(["has",olda,c],e) for c in l]]
-  isCategoryForm(b,e) => ["HasCategory",a,mkTypeForm b]
+  isCategoryForm(b,e) => ["HasCategory",a,simplifyVMForm mkTypeForm b]
   stackAndThrow('"Second argument to %1b must be a category, or a signature or an attribute",["has"])
 
 --% IF
diff --git a/src/interp/daase.lisp b/src/interp/daase.lisp
index ddade882..7196c742 100644
--- a/src/interp/daase.lisp
+++ b/src/interp/daase.lisp
@@ -229,7 +229,7 @@
  being-defined		    ; T is definition of constructor is being processed
  load-path		    ; full object path name, when loaded.
  capsule-definitions	    ; capsule-level definitions
- template		    ; for a category, this the generic instantce.
+ template		    ; for a category, this is the generic instance.
                             ; for a functor, this is the template.
  ) ; database structure
 
-- 
cgit v1.2.3