diff options
author | johnvg | 2012-08-07 09:51:51 +0000 |
---|---|---|
committer | johnvg | 2012-08-07 09:51:51 +0000 |
commit | 2506184b0df69d386f08ae94d28a0c3caa409695 (patch) | |
tree | 6f75492191fecb0a9321c78779136dc13826bb37 /frontend/syntax.dcl | |
parent | move computation of n_args_before_producer and n_producer_args in function ge... (diff) |
fix fusion of a function that is both the consumer and the producer.
before copying the producer, the type variables are modified
to use the type of the producer when updating the types in cases and lets,
otherwise a polymorphic type may be specialized, possibly causing a type error later
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2134 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/syntax.dcl')
-rw-r--r-- | frontend/syntax.dcl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl index 1c76796..2b68014 100644 --- a/frontend/syntax.dcl +++ b/frontend/syntax.dcl @@ -742,8 +742,8 @@ pIsSafe :== True VI_Pattern !AuxiliaryPattern | VI_TypeCodeVariable !TypeCodeVariableInfo | VI_DynamicValueAlias !BoundVar | - VI_Body !SymbIdent !TransformedBody ![FreeVar] | /* used during fusion */ - VI_ExpressionOrBody !Expression !SymbIdent !TransformedBody ![FreeVar] | /* used during fusion */ + VI_Body !SymbIdent !TransformedBody ![FreeVar] ![TypeVar] ![TypeVar] | /* used during fusion */ + VI_ExpressionOrBody !Expression !SymbIdent !TransformedBody ![FreeVar] ![TypeVar] ![TypeVar] | /* used during fusion */ VI_Dictionary !SymbIdent ![Expression] !Type | /* used during fusion */ VI_Extended !ExtendedVarInfo !VarInfo | // MdM |