From 2300428ee29fa86a976562d5d06f29542cce24b3 Mon Sep 17 00:00:00 2001
From: stratact <stratact1@gmail.com>
Date: Thu, 21 Jun 2018 11:22:31 -0700
Subject: [PATCH] Remove support for index array insertions and have it error
 for not supporting multi-dimensional arrays yet

---
 examples/array_assignments.ion | 16 ----------------
 examples/array_assignments.out |  4 ----
 src/lib/shell/assignments.rs   | 18 +++---------------
 3 files changed, 3 insertions(+), 35 deletions(-)

diff --git a/examples/array_assignments.ion b/examples/array_assignments.ion
index 632ffcab..15e6d67c 100644
--- a/examples/array_assignments.ion
+++ b/examples/array_assignments.ion
@@ -6,19 +6,3 @@ let array[$value] = 5
 echo @array
 let array[2]:int = 6
 echo @array
-
-let FOO = [4 5 6]
-let FOO[0] = [1 2 3]
-echo @FOO
-
-let FOO = [4 5 6]
-let FOO[1] = [1 2 3]
-echo @FOO
-
-let FOO = [4 5 6]
-let FOO[2] = [1 2 3]
-echo @FOO
-
-let FOO = [4 5 6]
-let FOO[3] = [1 2 3]
-echo @FOO
diff --git a/examples/array_assignments.out b/examples/array_assignments.out
index 58914b3d..be78b833 100644
--- a/examples/array_assignments.out
+++ b/examples/array_assignments.out
@@ -1,7 +1,3 @@
 4 2 3
 4 5 3
 4 5 6
-1 2 3 4 5 6
-4 1 2 3 5 6
-4 5 1 2 3 6
-4 5 6 1 2 3
diff --git a/src/lib/shell/assignments.rs b/src/lib/shell/assignments.rs
index 735dc4f7..13508b56 100644
--- a/src/lib/shell/assignments.rs
+++ b/src/lib/shell/assignments.rs
@@ -263,21 +263,9 @@ impl VariableStore for Shell {
                 Ok(Action::UpdateArray(key, _, _)) => {
                     match collected.remove(key.name) {
                         Some(ReturnValue::Vector(values)) => {
-                            if let Primitive::Indexed(ref index, _) = key.kind {
-                                match parse_index(index, &self) {
-                                    Ok(index_num) => {
-                                        if let Some(mut array) = self.variables.get_array(key.name) {
-                                            for (i, value) in values.into_iter().enumerate() {
-                                                array.insert(index_num + i, value);
-                                            }
-                                            self.variables.set_array(key.name, array);
-                                        }
-                                    }
-                                    Err(why) => {
-                                        eprintln!("{}", why);
-                                        return FAILURE;
-                                    }
-                                };
+                            if let Primitive::Indexed(_, _) = key.kind {
+                                eprintln!("ion: multi-dimensional arrays are not yet supported");
+                                return FAILURE;
                             } else {
                                 self.variables.set_array(key.name, values);
                             }
-- 
GitLab