diff --git a/compiler/forget/src/HIR/InferReferenceEffects.ts b/compiler/forget/src/HIR/InferReferenceEffects.ts index 1101c310d1..6d41668995 100644 --- a/compiler/forget/src/HIR/InferReferenceEffects.ts +++ b/compiler/forget/src/HIR/InferReferenceEffects.ts @@ -641,6 +641,7 @@ function inferBlock(env: Environment, block: BasicBlock) { break; } case "switch": { + env.reference(block.terminal.test, Effect.Read); for (const case_ of block.terminal.cases) { if (case_.test !== null) { env.reference(case_.test, Effect.Read); diff --git a/compiler/forget/src/__tests__/fixtures/hir/reverse-postorder.expect.md b/compiler/forget/src/__tests__/fixtures/hir/reverse-postorder.expect.md index d39df1c928..d086ca9225 100644 --- a/compiler/forget/src/__tests__/fixtures/hir/reverse-postorder.expect.md +++ b/compiler/forget/src/__tests__/fixtures/hir/reverse-postorder.expect.md @@ -43,7 +43,7 @@ bb2: [2] Const mutate $8 = 2 [3] Const mutate $9 = 1 [4] Const mutate $10 = 0 - Switch ( props$6.test) + Switch (read props$6.test) Case read $10: bb8 Case read $9: bb6 Case read $8: bb4 diff --git a/compiler/forget/src/__tests__/fixtures/hir/ssa-switch.expect.md b/compiler/forget/src/__tests__/fixtures/hir/ssa-switch.expect.md index 1d67a73019..f82fe7ce36 100644 --- a/compiler/forget/src/__tests__/fixtures/hir/ssa-switch.expect.md +++ b/compiler/forget/src/__tests__/fixtures/hir/ssa-switch.expect.md @@ -33,7 +33,7 @@ bb0: [3] Const mutate $12 = Binary read x$10 === read $11 [4] Const mutate $13 = 1 [5] Const mutate $14 = Binary read x$10 === read $13 - Switch ( x$10) + Switch (read x$10) Case read $14: bb5 Case read $12: bb3 Default: bb2 diff --git a/compiler/forget/src/__tests__/fixtures/hir/switch-non-final-default.expect.md b/compiler/forget/src/__tests__/fixtures/hir/switch-non-final-default.expect.md index 77f4be0e2a..29d5eb777d 100644 --- a/compiler/forget/src/__tests__/fixtures/hir/switch-non-final-default.expect.md +++ b/compiler/forget/src/__tests__/fixtures/hir/switch-non-final-default.expect.md @@ -37,7 +37,7 @@ bb0: [3] Const mutate $12 = false [4] Const mutate $13 = true [5] Const mutate $14 = 1 - Switch ( props$9.p0) + Switch (read props$9.p0) Case read $14: bb1 Case read $13: bb6 Default: bb1 diff --git a/compiler/forget/src/__tests__/fixtures/hir/switch.expect.md b/compiler/forget/src/__tests__/fixtures/hir/switch.expect.md index 359543d96e..22521499b8 100644 --- a/compiler/forget/src/__tests__/fixtures/hir/switch.expect.md +++ b/compiler/forget/src/__tests__/fixtures/hir/switch.expect.md @@ -32,7 +32,7 @@ bb0: [2] Let mutate y$10 = undefined [3] Const mutate $11 = false [4] Const mutate $12 = true - Switch ( props$8.p0) + Switch (read props$8.p0) Case read $12: bb4 Case read $11: bb2 Default: bb1