summaryrefslogtreecommitdiff
path: root/src/specialize.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-06-18 18:06:15 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-06-18 18:06:15 -0400
commit8bbaf74559e046e2488b01c021ba5bbdd8580c57 (patch)
tree42468876b95c2a587811b4b209cfcc0cde98f0e5 /src/specialize.sml
parent8c2eb37e99b79153a98fbdebce39b4064dcdb2e9 (diff)
Fix a bug with 'Some p' patterns, where 'p' needs specialization
Diffstat (limited to 'src/specialize.sml')
-rw-r--r--src/specialize.sml6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/specialize.sml b/src/specialize.sml
index 43c634c7..6db16b6c 100644
--- a/src/specialize.sml
+++ b/src/specialize.sml
@@ -190,6 +190,12 @@ fun pat (p, st) =
| SOME pn' => ((PCon (dk, PConVar pn', [], po), #2 p), st)
end
end
+ | PCon (dk, pc, args, SOME p') =>
+ let
+ val (p', st) = pat (p', st)
+ in
+ ((PCon (dk, pc, args, SOME p'), #2 p), st)
+ end
| PCon _ => (p, st)
| PRecord xps =>
let