From 8f47ab9a04006ab71a6790ec3c8006fbedfe31b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Thu, 29 Dec 2016 11:20:07 +0100
Subject: [PATCH] Compiler: Improved backward compat for ::_indices() et al.

Removes the deprecation warning when using the old-style syntax.

The return value for ::`->=() is no longer void.
---
 src/las.c    | 12 ++++++------
 src/object.c | 12 ++++++------
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/las.c b/src/las.c
index 39afa5c4ef..9610d0e678 100644
--- a/src/las.c
+++ b/src/las.c
@@ -3912,27 +3912,27 @@ void fix_type_field(node *n)
   case F_MAGIC_INDEX:
     /* FIXME: Could have a stricter type for ::`->(). */
     /* FIXME: */
-    MAKE_CONSTANT_TYPE(n->type, tFunc(tStr tOr3(tVoid,tObj,tDeprecated(tInt))
+    MAKE_CONSTANT_TYPE(n->type, tFunc(tStr tOr3(tVoid,tObj,tInt)
 				      tOr(tVoid,tInt), tMix));
     break;
   case F_MAGIC_SET_INDEX:
     /* FIXME: Could have a stricter type for ::`->=(). */
     /* FIXME: */
-    MAKE_CONSTANT_TYPE(n->type, tFunc(tStr tMix tOr3(tVoid,tObj,tDeprecated(tInt))
-				      tOr(tVoid,tInt), tVoid));
+    MAKE_CONSTANT_TYPE(n->type, tFunc(tStr tMix tOr3(tVoid,tObj,tInt)
+				      tOr(tVoid,tInt), tZero));
     break;
   case F_MAGIC_INDICES:
-    MAKE_CONSTANT_TYPE(n->type, tFunc(tOr3(tVoid,tObj,tDeprecated(tInt))
+    MAKE_CONSTANT_TYPE(n->type, tFunc(tOr3(tVoid,tObj,tInt)
 				      tOr(tVoid,tInt), tArr(tStr)));
     break;
   case F_MAGIC_VALUES:
     /* FIXME: Could have a stricter type for ::_values. */
-    MAKE_CONSTANT_TYPE(n->type, tFunc(tOr3(tVoid,tObj,tDeprecated(tInt))
+    MAKE_CONSTANT_TYPE(n->type, tFunc(tOr3(tVoid,tObj,tInt)
 				      tOr(tVoid,tInt), tArray));
     break;
   case F_MAGIC_TYPES:
     /* FIXME: Could have a stricter type for ::_types. */
-    MAKE_CONSTANT_TYPE(n->type, tFunc(tOr3(tVoid,tObj,tDeprecated(tInt))
+    MAKE_CONSTANT_TYPE(n->type, tFunc(tOr3(tVoid,tObj,tInt)
 				      tOr(tVoid,tInt), tArr(tType(tMix))));
     break;
 
diff --git a/src/object.c b/src/object.c
index eb6b5ecc7e..d893991f0d 100644
--- a/src/object.c
+++ b/src/object.c
@@ -3270,7 +3270,7 @@ void init_object(void)
    *     opcode F_MAGIC_INDEX.
    */
   ADD_FUNCTION("`()", f_magic_index,
-	       tFunc(tStr tOr3(tVoid,tObj,tDeprecated(tInt)) tOr(tVoid,tInt),
+	       tFunc(tStr tOr3(tVoid,tObj,tInt) tOr(tVoid,tInt),
 		     tMix), ID_PROTECTED);
   magic_index_program=end_program();
 
@@ -3283,8 +3283,8 @@ void init_object(void)
    *     opcode F_MAGIC_SET_INDEX.
    */
   ADD_FUNCTION("`()", f_magic_set_index,
-	       tFunc(tStr tMix tOr3(tVoid,tObj,tDeprecated(tInt))
-		     tOr(tVoid,tInt), tVoid), ID_PROTECTED);
+	       tFunc(tStr tMix tOr3(tVoid,tObj,tInt)
+		     tOr(tVoid,tInt), tZero), ID_PROTECTED);
   magic_set_index_program=end_program();
 
   /* ::_indices() */
@@ -3296,7 +3296,7 @@ void init_object(void)
    *     opcode F_MAGIC_INDICES.
    */
   ADD_FUNCTION("`()", f_magic_indices,
-	       tFunc(tOr3(tVoid,tObj,tDeprecated(tInt)) tOr(tVoid,tInt),
+	       tFunc(tOr3(tVoid,tObj,tInt) tOr(tVoid,tInt),
 		     tArr(tStr)), ID_PROTECTED);
   magic_indices_program=end_program();
 
@@ -3309,7 +3309,7 @@ void init_object(void)
    *     opcode F_MAGIC_VALUES.
    */
   ADD_FUNCTION("`()", f_magic_values,
-	       tFunc(tOr3(tVoid,tObj,tDeprecated(tInt)) tOr(tVoid,tInt),
+	       tFunc(tOr3(tVoid,tObj,tInt) tOr(tVoid,tInt),
 		     tArray), ID_PROTECTED);
   magic_values_program=end_program();
 
@@ -3322,7 +3322,7 @@ void init_object(void)
    *     opcode F_MAGIC_TYPES.
    */
   ADD_FUNCTION("`()", f_magic_types,
-	       tFunc(tOr3(tVoid,tObj,tDeprecated(tInt)) tOr(tVoid,tInt),
+	       tFunc(tOr3(tVoid,tObj,tInt) tOr(tVoid,tInt),
 		     tArr(tType(tMix))), ID_PROTECTED);
   magic_types_program=end_program();
 
-- 
GitLab