@samitouri / QOS-React / commits / c0a5d86902
Fork 0

The library for web and native user interfaces.

Reorder similar cases in InferReferenceEffects

Moves the CallExpression case next to MethodCall to make it easier to compare

Joe Savona committed May 18, 2023 at 15:52 UTC c0a5d869026b6dd5300c8b0a9c2c47907d67f3b9
1 file changed +13 -13
compiler/forget/src/Inference/InferReferenceEffects.ts
+13 -13
@@ -632,19 +632,6 @@ function inferBlock(
632 effectKind = Effect.Mutate;
633 break;
634 }
635 - case "CallExpression": {
636 - valueKind = ValueKind.Mutable;
637 - effectKind = Effect.Mutate;
638 - const hook =
639 - instrValue.callee.identifier.type.kind === "Hook"
640 - ? instrValue.callee.identifier.type.definition
641 - : null;
642 - if (hook !== null) {
643 - effectKind = hook.effectKind;
644 - valueKind = hook.valueKind;
645 - }
646 - break;
647 - }
635 case "ObjectExpression": {
636 valueKind = hasContextRefOperand(state, instrValue)
637 ? ValueKind.Context
@@ -719,6 +706,19 @@ function inferBlock(
706 instr.lvalue.effect = Effect.Store;
707 continue;
708 }
709 + case "CallExpression": {
710 + valueKind = ValueKind.Mutable;
711 + effectKind = Effect.Mutate;
712 + const hook =
713 + instrValue.callee.identifier.type.kind === "Hook"
714 + ? instrValue.callee.identifier.type.definition
715 + : null;
716 + if (hook !== null) {
717 + effectKind = hook.effectKind;
718 + valueKind = hook.valueKind;
719 + }
720 + break;
721 + }
722 case "MethodCall": {
723 invariant(
724 state.isDefined(instrValue.receiver),