aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/especialize.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2011-01-06 12:31:13 -0500
committerGravatar Adam Chlipala <adam@chlipala.net>2011-01-06 12:31:13 -0500
commitede0d18f8ce0f39b1458f201d144682e2d52ca5b (patch)
treeaae7b20d693489e6bb467ca8cdc14289f3981d15 /src/especialize.sml
parent4bdbd690fbf4d587497fae16aad0f546a7d2ac7b (diff)
Expand valueish again
Diffstat (limited to 'src/especialize.sml')
-rw-r--r--src/especialize.sml15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/especialize.sml b/src/especialize.sml
index c4789268..8720a7b1 100644
--- a/src/especialize.sml
+++ b/src/especialize.sml
@@ -337,20 +337,9 @@ fun specialize' (funcs, specialized) file =
| EKAbs _ => true
| ECApp (e, _) => valueish e
| EKApp (e, _) => valueish e
- | EApp _ =>
- let
- fun valueishf (e, _) =
- case e of
- ENamed _ => true
- | EFfi _ => true
- | ECApp (e, _) => valueishf e
- | EApp (e, (ERel _, _)) => valueishf e
- | EApp (e, (ENamed _, _)) => valueishf e
- | _ => false
- in
- valueishf all
- end
+ | EApp (e1, e2) => valueish e1 andalso valueish e2
| ERecord xes => List.all (valueish o #2) xes
+ | EField (e, _, _) => valueish e
| _ => false
val vts = map (fn n => #2 (List.nth (env, n))) (IS.listItems fvs)