[project @ 2000-02-04 13:41:00 by sewardj]
authorsewardj <unknown>
Fri, 4 Feb 2000 13:41:00 +0000 (13:41 +0000)
committersewardj <unknown>
Fri, 4 Feb 2000 13:41:00 +0000 (13:41 +0000)
startGHCClass(): set the .dsels (superclass dsels) field.

ghc/interpreter/interface.c
ghc/interpreter/static.c

index ceefd4f..00348c4 100644 (file)
@@ -7,8 +7,8 @@
  * Hugs version 1.4, December 1997
  *
  * $RCSfile: interface.c,v $
- * $Revision: 1.26 $
- * $Date: 2000/02/03 15:56:13 $
+ * $Revision: 1.27 $
+ * $Date: 2000/02/04 13:41:00 $
  * ------------------------------------------------------------------------*/
 
 #include "prelude.h"
@@ -1694,6 +1694,8 @@ List  mems0; {    /* [((VarId, Type))]     */
     List mems;    /* [((VarId, Type))]     */
     List tvsInT;  /* [VarId] and then [((VarId,Kind))] */
     List tvs;     /* [((VarId,Kind))]      */
+    List ns;      /* [Name]                */
+    Int  mno;
 
     ZPair kinded_tv = hd(kinded_tvs);
     Text ct         = textOf(tc_name);
@@ -1785,10 +1787,14 @@ List  mems0; {    /* [((VarId, Type))]     */
 
         /* (ADR) ToDo: 
          * cclass(nw).dsels    = ?;
-         * cclass(nw).dbuild   = ?;
-         * cclass(nm).dcon     = ?;
          * cclass(nm).defaults = ?;
          */
+
+        ns = NIL;
+        for (mno=0; mno<cclass(nw).numSupers; mno++) {
+           ns = cons(newDSel(nw,mno),ns);
+        }
+        cclass(nw).dsels = rev(ns);
     }
 }
 
index a8985ed..adbe90d 100644 (file)
@@ -9,8 +9,8 @@
  * included in the distribution.
  *
  * $RCSfile: static.c,v $
- * $Revision: 1.22 $
- * $Date: 2000/02/03 15:56:13 $
+ * $Revision: 1.23 $
+ * $Date: 2000/02/04 13:41:00 $
  * ------------------------------------------------------------------------*/
 
 #include "prelude.h"
@@ -58,7 +58,7 @@ static Void   local checkMems           Args((Class,List,Cell));
 static Void   local checkMems2           Args((Class,Cell));
 static Void   local addMembers          Args((Class));
 static Name   local newMember           Args((Int,Int,Cell,Type,Class));
-static Name   local newDSel             Args((Class,Int));
+       Name         newDSel             Args((Class,Int));
 static Text   local generateText        Args((String,Class));
        Int          visitClass          Args((Class));
 
@@ -1633,7 +1633,7 @@ Class parent; {
     return m;
 }
 
-static Name local newDSel(c,no)         /* Make definition for dict selectr*/
+Name newDSel(c,no)                      /* Make definition for dict selectr*/
 Class c;
 Int   no; {
     Name s;