all test cases passing!
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 10 Jan 2023 21:27:18 +0000 (15:27 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 10 Jan 2023 21:27:18 +0000 (15:27 -0600)
core/container/array.onyx

index 4b4432e3e5bccdf6a88bf29d5260eda082ec85e6..960016fd71cb28b2a732400166980bdc6c7c5b8d 100644 (file)
@@ -344,7 +344,9 @@ average :: (arr: [] $T) -> T {
 
 reverse :: (arr: [] $T) {
     for i: arr.count / 2 {
-        arr[i], arr[arr.count - 1 - i] = arr[arr.count - 1 - i], arr[i];
+        tmp := arr[i];
+        arr[i] = arr[arr.count - 1 - i];
+        arr[arr.count - 1 - i] = tmp;
     }
 }
 
@@ -385,7 +387,10 @@ sort :: (arr: [] $T, cmp: (^T, ^T) -> i32) -> [] T {
 
         while j > 0 {
             if cmp(^arr.data[j - 1], ^arr.data[j]) > 0 {
-                arr.data[j], arr.data[j - 1] = arr.data[j - 1], arr.data[j];
+                tmp := arr.data[j];
+                arr.data[j] = arr.data[j - 1];
+                arr.data[j - 1] = tmp;
+
                 j -= 1;
             } else {
                 break;
@@ -421,7 +426,9 @@ quicksort :: #match #locked {
         for j: lo .. hi+1 {
             if cmp(arr[j], pivot) <= 0 {
                 i += 1;
-                arr[i], arr[j] = arr[j], arr[i];
+                tmp := arr[i];
+                arr[i] = arr[j];
+                arr[j] = tmp;
             }
         }
 
@@ -436,7 +443,9 @@ quicksort :: #match #locked {
         for j: lo .. hi+1 {
             if cmp(^arr[j], pivot) <= 0 {
                 i += 1;
-                arr[i], arr[j] = arr[j], arr[i];
+                tmp := arr[i];
+                arr[i] = arr[j];
+                arr[j] = tmp;
             }
         }