diff options
author | johnvg | 2011-03-04 16:03:27 +0000 |
---|---|---|
committer | johnvg | 2011-03-04 16:03:27 +0000 |
commit | 02c86de212cc8cc4cc179e8e0d8b95b8303995f7 (patch) | |
tree | 9ee590647826e314053903d6d48296f0b0b01fa7 /frontend/syntax.dcl | |
parent | delete 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.dcl | 6 |
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 */ |