comparison src/corify.sml @ 1314:6c2e565adca6

Fixes for nasty bugs in Reduce and Especialize
author Adam Chlipala <adam@chlipala.net>
date Tue, 19 Oct 2010 17:54:49 -0400
parents b4480a56cab7
children b106ca8200b1
comparison
equal deleted inserted replaced
1313:0bf73c3e4563 1314:6c2e565adca6
269 269
270 fun lookupValByName ({current, ...} : t) x = 270 fun lookupValByName ({current, ...} : t) x =
271 case current of 271 case current of
272 FFfi {mod = m, vals, ...} => 272 FFfi {mod = m, vals, ...} =>
273 (case SM.find (vals, x) of 273 (case SM.find (vals, x) of
274 NONE => raise Fail "Corify.St.lookupValByName: no type for FFI val" 274 NONE => raise Fail ("Corify.St.lookupValByName: no type for FFI val " ^ x)
275 | SOME t => EFfi (m, t)) 275 | SOME t => EFfi (m, t))
276 | FNormal {vals, ...} => 276 | FNormal {name, vals, ...} =>
277 case SM.find (vals, x) of 277 case SM.find (vals, x) of
278 NONE => raise Fail "Corify.St.lookupValByName" 278 NONE => raise Fail ("Corify.St.lookupValByName " ^ String.concatWith "." name ^ "." ^ x)
279 | SOME n => ENormal n 279 | SOME n => ENormal n
280 280
281 fun bindConstructor {basis, cons, constructors, vals, strs, funs, current, nested} s n n' = 281 fun bindConstructor {basis, cons, constructors, vals, strs, funs, current, nested} s n n' =
282 let 282 let
283 val current = 283 val current =