comparison src/mono_reduce.sml @ 1069:757397bb9609

Fix lexing of string literals in XML; treat EError as impure in MonoReduce
author Adam Chlipala <adamc@hcoop.net>
date Sat, 12 Dec 2009 14:51:10 -0500
parents 217eb87dde31
children b2311dfb3158
comparison
equal deleted inserted replaced
1068:757dbac0454d 1069:757397bb9609
54 | EFfiApp (m, x, _) => Settings.isEffectful (m, x) 54 | EFfiApp (m, x, _) => Settings.isEffectful (m, x)
55 | EServerCall _ => true 55 | EServerCall _ => true
56 | ERecv _ => true 56 | ERecv _ => true
57 | ESleep _ => true 57 | ESleep _ => true
58 | ENamed n => IS.member (syms, n) 58 | ENamed n => IS.member (syms, n)
59 | EError _ => true
59 | ERel n => 60 | ERel n =>
60 let 61 let
61 val (_, t, _) = E.lookupERel env n 62 val (_, t, _) = E.lookupERel env n
62 in 63 in
63 simpleTypeImpure tsyms t 64 simpleTypeImpure tsyms t
94 | ERecord xes => List.exists (fn (_, e, _) => impure e) xes 95 | ERecord xes => List.exists (fn (_, e, _) => impure e) xes
95 | EField (e, _) => impure e 96 | EField (e, _) => impure e
96 97
97 | ECase (e, pes, _) => impure e orelse List.exists (fn (_, e) => impure e) pes 98 | ECase (e, pes, _) => impure e orelse List.exists (fn (_, e) => impure e) pes
98 99
99 | EError (e, _) => impure e 100 | EError _ => true
100 | EReturnBlob {blob = e1, mimeType = e2, ...} => impure e1 orelse impure e2 101 | EReturnBlob {blob = e1, mimeType = e2, ...} => impure e1 orelse impure e2
101 | ERedirect (e, _) => impure e 102 | ERedirect (e, _) => impure e
102 103
103 | EStrcat (e1, e2) => impure e1 orelse impure e2 104 | EStrcat (e1, e2) => impure e1 orelse impure e2
104 105