@samitouri / QOS-React-2 / commits / 7c094af34e

[HIR] fix missing read reference to switch test value

Unless I'm mistaken, the switch operand is missing here.

Jan Kassens committed Nov 7, 2022 at 16:38 UTC 7c094af34e01e7e5cd0af668107cfff49811f624
5 files changed +5 -4
compiler/forget/src/HIR/InferReferenceEffects.ts
+1
@@ -641,6 +641,7 @@ function inferBlock(env: Environment, block: BasicBlock) {
641 break;
642 }
643 case "switch": {
644 + env.reference(block.terminal.test, Effect.Read);
645 for (const case_ of block.terminal.cases) {
646 if (case_.test !== null) {
647 env.reference(case_.test, Effect.Read);
compiler/forget/src/__tests__/fixtures/hir/reverse-postorder.expect.md
+1 -1
@@ -43,7 +43,7 @@ bb2:
43 [2] Const mutate $8 = 2
44 [3] Const mutate $9 = 1
45 [4] Const mutate $10 = 0
46 - Switch (<unknown> props$6.test)
46 + Switch (read props$6.test)
47 Case read $10: bb8
48 Case read $9: bb6
49 Case read $8: bb4
compiler/forget/src/__tests__/fixtures/hir/ssa-switch.expect.md
+1 -1
@@ -33,7 +33,7 @@ bb0:
33 [3] Const mutate $12 = Binary read x$10 === read $11
34 [4] Const mutate $13 = 1
35 [5] Const mutate $14 = Binary read x$10 === read $13
36 - Switch (<unknown> x$10)
36 + Switch (read x$10)
37 Case read $14: bb5
38 Case read $12: bb3
39 Default: bb2
compiler/forget/src/__tests__/fixtures/hir/switch-non-final-default.expect.md
+1 -1
@@ -37,7 +37,7 @@ bb0:
37 [3] Const mutate $12 = false
38 [4] Const mutate $13 = true
39 [5] Const mutate $14 = 1
40 - Switch (<unknown> props$9.p0)
40 + Switch (read props$9.p0)
41 Case read $14: bb1
42 Case read $13: bb6
43 Default: bb1
compiler/forget/src/__tests__/fixtures/hir/switch.expect.md
+1 -1
@@ -32,7 +32,7 @@ bb0:
32 [2] Let mutate y$10 = undefined
33 [3] Const mutate $11 = false
34 [4] Const mutate $12 = true
35 - Switch (<unknown> props$8.p0)
35 + Switch (read props$8.p0)
36 Case read $12: bb4
37 Case read $11: bb2
38 Default: bb1