aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohnvg2006-11-06 10:51:46 +0000
committerjohnvg2006-11-06 10:51:46 +0000
commitcf372c16cd6ab5eb6a47657eb5beb64dd67649d0 (patch)
treedd258721908354821b0165e092f5b2ad6f9fda17
parentfix printing of _ label in .n directive for lazy record field selectors (diff)
add var to exi_vars in function check_existential_var if an error occurs,
and therefore to TFA, to prevent crash later in the compiler (would cause invalid pointer) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1623 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r--frontend/typesupport.icl4
1 files changed, 3 insertions, 1 deletions
diff --git a/frontend/typesupport.icl b/frontend/typesupport.icl
index 41e433f..54358b0 100644
--- a/frontend/typesupport.icl
+++ b/frontend/typesupport.icl
@@ -406,7 +406,9 @@ where
TE
-> (exi_vars, all_vars, cus)
_
- -> (exi_vars, all_vars, { cus & cus_var_env = { cus.cus_var_env & [var_number] = TE }, cus_error = existentialError cus.cus_error })
+ # (TV var, cus) = cus!cus_var_env.[var_number]
+ -> ([{atv_attribute = var_attr, atv_variable = var } : exi_vars ], all_vars,
+ { cus & cus_var_env = { cus.cus_var_env & [var_number] = TE }, cus_error = existentialError cus.cus_error })
# (TV var, cus) = cus!cus_var_env.[var_number]
= ([{atv_attribute = var_attr, atv_variable = var } : exi_vars ],
[var_number : all_vars], { cus & cus_var_env = { cus.cus_var_env & [var_number] = TE }})