CVS: sml-dist/src/compiler/Elaborator/types typecheck.sml, 1.8.4.2, 1.8.4.3

George Kuan <[email protected]> Mon, 19 Jun 2006 18:28:07 -0700
Newsgroups gmane.comp.lang.sml.smlnj.commits
Message-ID <[email protected]>
Update of /cvsroot/smlnj/sml-dist/src/compiler/Elaborator/types
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv24205/src/compiler/Elaborator/types

Modified Files:
      Tag: primop-branch-2
	typecheck.sml 
Log Message:
Propagating VARexp, CONpat, CONexp type change to ?? * ty option change

Index: typecheck.sml
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/compiler/Elaborator/types/typecheck.sml,v
retrieving revision 1.8.4.2
retrieving revision 1.8.4.3
diff -C2 -d -r1.8.4.2 -r1.8.4.3
*** typecheck.sml	19 Jun 2006 22:29:00 -0000	1.8.4.2
--- typecheck.sml	20 Jun 2006 01:28:00 -0000	1.8.4.3
***************
*** 345,349 ****
                 val nty = mkMETAtyBounded depth
                 val _ = unifyTy(nty, ty) 
!             in (CONpat(dcon,insts),ty)
             end
         | APPpat(dcon as DATACON{typ,rep,...},_,arg) =>
--- 345,350 ----
                 val nty = mkMETAtyBounded depth
                 val _ = unifyTy(nty, ty) 
!             in (** (CONpat(dcon,insts),ty) *)
! 	       (CONpat(dcon, SOME ty), ty)
             end
         | APPpat(dcon as DATACON{typ,rep,...},_,arg) =>
***************
*** 411,415 ****
        of VARexp(r as ref(VALvar{typ, ...}), _) =>
  	  let val (ty, insts) = instantiatePoly(!typ)
! 	   in (VARexp(r, ty), ty)
  	  end
         | VARexp(refvar as ref(OVLDvar _),_) =>
--- 412,416 ----
        of VARexp(r as ref(VALvar{typ, ...}), _) =>
  	  let val (ty, insts) = instantiatePoly(!typ)
! 	   in (VARexp(r, SOME ty), ty)
  	  end
         | VARexp(refvar as ref(OVLDvar _),_) =>
***************
*** 418,422 ****
         | CONexp(dcon as DATACON{typ,...},_) => 
             let val (ty,insts) = instantiatePoly typ
!             in (CONexp(dcon,ty), ty)
             end
         | INTexp (_,ty) => (oll_push ty; (exp,ty))
--- 419,423 ----
         | CONexp(dcon as DATACON{typ,...},_) => 
             let val (ty,insts) = instantiatePoly typ
!             in (CONexp(dcon, SOME ty), ty)
             end
         | INTexp (_,ty) => (oll_push ty; (exp,ty))