CVS: sml-dist/src/compiler/ElabData/types typesutil.sig, 1.2.20.1, 1.2.20.2 typesutil.sml, 1.3.2.2, 1.3.2.3
George Kuan <[email protected]>
| Newsgroups | gmane.comp.lang.sml.smlnj.commits |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/smlnj/sml-dist/src/compiler/ElabData/types
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv24205/src/compiler/ElabData/types
Modified Files:
Tag: primop-branch-2
typesutil.sig typesutil.sml
Log Message:
Propagating VARexp, CONpat, CONexp type change to ?? * ty option change
Index: typesutil.sig
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/compiler/ElabData/types/typesutil.sig,v
retrieving revision 1.2.20.1
retrieving revision 1.2.20.2
diff -C2 -d -r1.2.20.1 -r1.2.20.2
*** typesutil.sig 15 Jun 2006 22:28:07 -0000 1.2.20.1
--- typesutil.sig 20 Jun 2006 01:28:00 -0000 1.2.20.2
***************
*** 74,83 ****
val getRecTyvarMap : int * Types.ty -> (int -> bool)
val gtLabel : Symbol.symbol * Symbol.symbol -> bool
!
! val isValue : Absyn.exp -> bool
(* checks whether an expression is nonexpansive; used to determine
* when type generalization is permitted under the value rule *)
val isVarTy : Types.ty -> bool
!
val sortFields : (Absyn.numberedLabel * 'a) list
-> (Absyn.numberedLabel * 'a) list
--- 74,83 ----
val getRecTyvarMap : int * Types.ty -> (int -> bool)
val gtLabel : Symbol.symbol * Symbol.symbol -> bool
! (**
! val isValue : Absyn.exp -> bool *)
(* checks whether an expression is nonexpansive; used to determine
* when type generalization is permitted under the value rule *)
val isVarTy : Types.ty -> bool
!
val sortFields : (Absyn.numberedLabel * 'a) list
-> (Absyn.numberedLabel * 'a) list
Index: typesutil.sml
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/compiler/ElabData/types/typesutil.sml,v
retrieving revision 1.3.2.2
retrieving revision 1.3.2.3
diff -C2 -d -r1.3.2.2 -r1.3.2.3
*** typesutil.sml 19 Jun 2006 22:29:00 -0000 1.3.2.2
--- typesutil.sml 20 Jun 2006 01:28:00 -0000 1.3.2.3
***************
*** 563,566 ****
--- 563,569 ----
(* Modified to allow applications of lazy val rec Y combinators to
be nonexpansive. (Taha, DBM) *)
+ (** Either InlInfo must be moved closer to here or this function needs
+ to move to where InlInfo is. -GK *)
+ (**
local open Absyn in
***************
*** 584,588 ****
let fun isrefdcon(DATACON{rep=A.REF,...}) = true
| isrefdcon _ = false
-
fun iscast (VALvar { info, ... }) = InlInfo.isPrimCast info
| iscast _ = false
--- 587,590 ----
***************
*** 610,613 ****
--- 612,617 ----
| isValue (MARKexp(e,_)) = isValue e
| isValue _ = false
+
+
(* testing if a binding pattern is irrefutable --- complete *)
***************
*** 635,638 ****
--- 639,644 ----
end
end (* local *)
+ *)
+
fun isVarTy(VARty(ref(INSTANTIATED ty))) = isVarTy ty