diff --git a/inputs/failing/copyCounting/subscriptAssignment.ts b/inputs/failing/copyCounting/subscriptAssignment.ts
deleted file mode 100644
index 51d731d..0000000
--- a/inputs/failing/copyCounting/subscriptAssignment.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-//! test_output(3)
-// Should be: 2
-
-///
-
-export default function main() {
- const x = Debug.makeCopyCounter("x");
-
- let obj: Record = { x }; // First copy
- obj.y = "y"; // No extra copy
-
- let arr: unknown[] = [x]; // Second copy
- arr[1] = "y"; // No extra copy
-
- return x.count;
-}
diff --git a/inputs/passing/copyCounting/subscriptAssignment.ts b/inputs/passing/copyCounting/subscriptAssignment.ts
new file mode 100644
index 0000000..50f3b3e
--- /dev/null
+++ b/inputs/passing/copyCounting/subscriptAssignment.ts
@@ -0,0 +1,25 @@
+//! test_output(0)
+
+///
+
+export default function main() {
+ return measure(true) - measure(false);
+}
+
+function measure(assign: boolean) {
+ const x = Debug.makeCopyCounter("x");
+
+ let obj: Record = { x };
+
+ if (assign) {
+ obj.y = "y";
+ }
+
+ let arr: unknown[] = [x];
+
+ if (assign) {
+ arr[1] = "y";
+ }
+
+ return x.count;
+}