diff options
-rw-r--r-- | frontend/convertcases.icl | 10 | ||||
-rw-r--r-- | frontend/syntax.dcl | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/frontend/convertcases.icl b/frontend/convertcases.icl index cd62580..171f49c 100644 --- a/frontend/convertcases.icl +++ b/frontend/convertcases.icl @@ -630,7 +630,7 @@ where = var_heap set_strict_let_expr_info lb=:{lb_dst={fv_info_ptr}} var_heap - # (new_info_ptr, var_heap) = newPtr VI_Empty var_heap + # (new_info_ptr, var_heap) = newPtr VI_StrictLetVar var_heap = ({lb & lb_dst.fv_info_ptr = new_info_ptr}, var_heap <:= (fv_info_ptr, VI_CaseOrStrictLetVar new_info_ptr)) distribute_lets_in_non_distributed_let di {lb_dst={fv_ident,fv_info_ptr}} ds=:{ds_var_heap} @@ -717,11 +717,13 @@ where is_lhs_var (Var {var_info_ptr, var_ident}) var_heap = case sreadPtr var_info_ptr var_heap of VI_LocalLetVar - -> False ->> (var_ident.id_name, "rhs1") + -> False VI_LetExpression _ - -> False ->> (var_ident.id_name, "rhs2") + -> False + VI_StrictLetVar + -> False info - -> True ->> (var_ident.id_name, "lhs", info) + -> True is_lhs_var _ _ = False diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl index 6ce6385..e0c3f90 100644 --- a/frontend/syntax.dcl +++ b/frontend/syntax.dcl @@ -691,7 +691,7 @@ from convertDynamics import :: TypeCodeVariableInfo, :: DynamicValueAliasInfo VI_ClassVar !Ident !VarInfoPtr !Int | /* to hold dictionary variables during overloading */ VI_ForwardClassVar !VarInfoPtr | /* to hold the dictionary variable generated during overloading */ VI_Forward !BoundVar | VI_LetVar !LetVarInfo | VI_LetExpression !LetExpressionInfo | - VI_CaseOrStrictLetVar !VarInfoPtr | + VI_CaseOrStrictLetVar !VarInfoPtr | VI_StrictLetVar | VI_CorrespondenceNumber !Int | /* it is assumed that this alternative is _only_ used in module comparedefimp */ VI_SequenceNumber !Int | VI_AliasSequenceNumber !BoundVar | VI_Used | /* for indicating that an imported function has been used */ |