Commit 91c7dc16 authored by Ronny Wichers Schreur's avatar Ronny Wichers Schreur 🏘
Browse files

patch to prevent crash with undefined type variabeles in special declaration

parent 8e91821b
......@@ -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)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment