aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend/convertcases.icl10
-rw-r--r--frontend/syntax.dcl2
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 */