Mercurial > urweb
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 |