about summary refs log tree commit diff
path: root/src/boot
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2010-07-01 21:20:30 -0700
committerGraydon Hoare <graydon@mozilla.com>2010-07-01 21:20:30 -0700
commit01cfcfab1356407f98081e565644d4e3047fe36c (patch)
treefac3a36cecca90f001bd204dad1d38cc178d1668 /src/boot
parent2d40bc669c6f50247a0f3eec49b9a8e0cf375272 (diff)
Strip outer 'mutable' off slot when deciding if pred can apply.
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/me/typestate.ml5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/boot/me/typestate.ml b/src/boot/me/typestate.ml
index 764fdc96154..2c0c4b156af 100644
--- a/src/boot/me/typestate.ml
+++ b/src/boot/me/typestate.ml
@@ -68,9 +68,10 @@ let determine_constr_key
                           if referent_is_slot cx aid
                           then
                             if type_has_state
-                              (slot_ty (get_slot cx aid))
+                              (strip_mutable_or_constrained_ty
+                                 (slot_ty (get_slot cx aid)))
                             then err (Some aid)
-                              "predicate applied to slot of mutable type"
+                              "predicate applied to slot of state type"
                             else aid
                           else
                             (* Items are always constant, they're ok.