From c3b9743f87e59d6fc8d354f2de379ab47affa338 Mon Sep 17 00:00:00 2001 From: ronny Date: Fri, 27 Jul 2001 11:48:51 +0000 Subject: patch to prevent crash with undefined type variabeles in special declaration git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@597 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d --- frontend/check.icl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/frontend/check.icl b/frontend/check.icl index fe7ed0c..0482532 100644 --- a/frontend/check.icl +++ b/frontend/check.icl @@ -473,6 +473,22 @@ where build_type_subst {bind_src,bind_dst} type_heaps # (_, bind_src, type_heaps) = substitute bind_src type_heaps +// RWS ... +/* + FIXME: this is a patch for the following incorrect function type (in a dcl module) + + + f :: a | c a b special + a=[], b = Int + a=T, b = Char + + The type variable b doesn't occur in f's type, but this is checked in a later + phase. Probably it's a better solution to change the order of checking. + +*/ + | isNilPtr bind_dst.tv_info_ptr + = type_heaps +// ... RWS = { type_heaps & th_vars = writePtr bind_dst.tv_info_ptr (TVI_Type bind_src) type_heaps.th_vars} build_var_subst var (free_vars, type_var_heap) -- cgit v1.2.3