diff --git a/src/las.c b/src/las.c
index 68cf144145400eadec13fed003f3cf3149a17f85..39afa5c4ef8f0ebdfbf8f9c722023925cb5e0701 100644
--- a/src/las.c
+++ b/src/las.c
@@ -3918,7 +3918,8 @@ void fix_type_field(node *n)
   case F_MAGIC_SET_INDEX:
     /* FIXME: Could have a stricter type for ::`->=(). */
     /* FIXME: */
-    MAKE_CONSTANT_TYPE(n->type, tFunc(tStr tMix tOr(tVoid,tInt), tVoid));
+    MAKE_CONSTANT_TYPE(n->type, tFunc(tStr tMix tOr3(tVoid,tObj,tDeprecated(tInt))
+				      tOr(tVoid,tInt), tVoid));
     break;
   case F_MAGIC_INDICES:
     MAKE_CONSTANT_TYPE(n->type, tFunc(tOr3(tVoid,tObj,tDeprecated(tInt))