comparison src/mono_util.sml @ 2221:278e10629ba1

Basic field-resolution invalidation.
author Ziv Scully <ziv@mit.edu>
date Sat, 29 Nov 2014 03:37:59 -0500
parents f7113855f3b7
children 25874084bf1f
comparison
equal deleted inserted replaced
2220:794017f378de 2221:278e10629ba1
312 | EClosure (n, es) => 312 | EClosure (n, es) =>
313 S.map2 (ListUtil.mapfold (mfe ctx) es, 313 S.map2 (ListUtil.mapfold (mfe ctx) es,
314 fn es' => 314 fn es' =>
315 (EClosure (n, es'), loc)) 315 (EClosure (n, es'), loc))
316 316
317 | EQuery {exps, tables, state, query, body, initial} => 317 | EQuery {exps, tables, state, query, body, initial, sqlcacheInfo} =>
318 S.bind2 (ListUtil.mapfold (fn (x, t) => 318 S.bind2 (ListUtil.mapfold (fn (x, t) =>
319 S.map2 (mft t, 319 S.map2 (mft t,
320 fn t' => (x, t'))) exps, 320 fn t' => (x, t'))) exps,
321 fn exps' => 321 fn exps' =>
322 S.bind2 (ListUtil.mapfold (fn (x, xts) => 322 S.bind2 (ListUtil.mapfold (fn (x, xts) =>
332 fn query' => 332 fn query' =>
333 S.bind2 (mfe (bind (bind (ctx, RelE ("r", dummyt)), 333 S.bind2 (mfe (bind (bind (ctx, RelE ("r", dummyt)),
334 RelE ("acc", dummyt))) 334 RelE ("acc", dummyt)))
335 body, 335 body,
336 fn body' => 336 fn body' =>
337 S.map2 (mfe ctx initial, 337 (* ASK: is this the right thing to do? *)
338 S.bind2 (mfe ctx initial,
338 fn initial' => 339 fn initial' =>
339 (EQuery {exps = exps', 340 S.map2 (mfe (bind (ctx, RelE ("queryResult", dummyt)))
340 tables = tables', 341 sqlcacheInfo,
341 state = state', 342 fn sqlcacheInfo' =>
342 query = query', 343 (EQuery {exps = exps',
343 body = body', 344 tables = tables',
344 initial = initial'}, 345 state = state',
345 loc))))))) 346 query = query',
347 body = body',
348 initial = initial',
349 sqlcacheInfo = sqlcacheInfo},
350 loc))))))))
346 351
347 | EDml (e, fm) => 352 | EDml (e, fm) =>
348 S.map2 (mfe ctx e, 353 S.map2 (mfe ctx e,
349 fn e' => 354 fn e' =>
350 (EDml (e', fm), loc)) 355 (EDml (e', fm), loc))