aboutsummaryrefslogtreecommitdiff
path: root/frontend/syntax.dcl
diff options
context:
space:
mode:
authorjohnvg2011-03-04 16:03:27 +0000
committerjohnvg2011-03-04 16:03:27 +0000
commit02c86de212cc8cc4cc179e8e0d8b95b8303995f7 (patch)
tree9ee590647826e314053903d6d48296f0b0b01fa7 /frontend/syntax.dcl
parentdelete old implementation of generics (diff)
remove shorthand and iso functions from generic ranges,
first all main instances are build, then all shorthand instances, shorthand instances directly call the main instance (SK_Function instead of SK_Generic), call toGeneric.. and fromGeneric.. functions directly if possible, instead of iso.. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1877 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/syntax.dcl')
-rw-r--r--frontend/syntax.dcl6
1 files changed, 4 insertions, 2 deletions
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl
index 4efb005..39af652 100644
--- a/frontend/syntax.dcl
+++ b/frontend/syntax.dcl
@@ -553,7 +553,9 @@ NoGlobalIndex :== {gi_module=NoIndex,gi_index=NoIndex}
:: GenericTypeRep =
{ gtr_type :: GenTypeStruct // generic structure type
- , gtr_iso :: DefinedSymbol // the conversion isomorphism
+ , gtr_iso :: !DefinedSymbol // the conversion isomorphism
+ , gtr_to :: !DefinedSymbol
+ , gtr_from :: !DefinedSymbol
}
:: TypeDefInfos :== {# .{# TypeDefInfo}}
@@ -772,7 +774,6 @@ cNonRecursiveAppl :== False
/* Some auxiliary type definitions used during fusion. Actually, these definitions
should have been given in seperate module. Unfortunately, Clean's module system
forbids cyclic dependencies between def modules.
-
*/
:: FunctionHeap :== Heap FunctionInfo
@@ -1020,6 +1021,7 @@ cNonRecursiveAppl :== False
| TVI_ConsInstance !DefinedSymbol //AA: generic cons instance function
| TVI_Normalized !Int /* MV - position of type variable in its definition */
| TVI_Expr !Expression /* AA: Expression corresponding to the type var during generic specialization */
+ | TVI_Iso !DefinedSymbol !DefinedSymbol !DefinedSymbol
| TVI_GenTypeVarNumber !Int
| TVI_CPSTypeVar !CheatCompiler /* MdM: a pointer to a variable in CleanProverSystem is stored here, using a cast */