diff --git a/src/las.c b/src/las.c
index 40e3ba53d4e43f412674eb30e5e39755cf07f6d7..0dfa8c6c5760dac2c245e0694b32409f169ecd56 100644
--- a/src/las.c
+++ b/src/las.c
@@ -4273,7 +4273,7 @@ void fix_type_field(node *n)
   case F_MAGIC_INDEX:
     /* FIXME: Could have a stricter type for ::`->(). */
     /* FIXME: */
-    MAKE_CONSTANT_TYPE(n->type, tFunc(tMix tOr(tVoid,tInt),tMix));
+    MAKE_CONSTANT_TYPE(n->type, tFuncV(tStr tOr(tVoid,tObj) tOr(tVoid,tInt),tVoid,tMix));
     break;
   case F_MAGIC_SET_INDEX:
     /* FIXME: Could have a stricter type for ::`->=(). */