@samitouri / QOS-React-2 / commits / 1dfd51cdb0

[hir] Add name field to Hook

Sathya Gunasekaran committed Feb 14, 2023 at 23:07 UTC 1dfd51cdb074a141cdc2f82a312fd122db8ad44f
1 file changed +12 -1
compiler/forget/src/Inference/InferReferenceEffects.ts
+12 -1
@@ -815,6 +815,7 @@ const HOOKS: Map<string, Hook> = new Map([
815 "useState",
816 {
817 kind: "State",
818 + name: "useState",
819 effectKind: Effect.Freeze,
820 valueKind: ValueKind.Frozen,
821 },
@@ -823,6 +824,7 @@ const HOOKS: Map<string, Hook> = new Map([
824 "useRef",
825 {
826 kind: "Ref",
827 + name: "useRef",
828 effectKind: Effect.Capture,
829 valueKind: ValueKind.Mutable,
830 },
@@ -831,6 +833,7 @@ const HOOKS: Map<string, Hook> = new Map([
833 "useFreeze",
834 {
835 kind: "Ref",
836 + name: "useFreeze",
837 effectKind: Effect.Freeze,
838 valueKind: ValueKind.Frozen,
839 },
@@ -839,6 +842,7 @@ const HOOKS: Map<string, Hook> = new Map([
842 "useMemo",
843 {
844 kind: "Memo",
845 + name: "useMemo",
846 effectKind: Effect.Freeze,
847 valueKind: ValueKind.Frozen,
848 },
@@ -847,6 +851,7 @@ const HOOKS: Map<string, Hook> = new Map([
851 "useCallback",
852 {
853 kind: "Memo",
854 + name: "useCallback",
855 effectKind: Effect.Freeze,
856 valueKind: ValueKind.Frozen,
857 },
@@ -854,7 +859,12 @@ const HOOKS: Map<string, Hook> = new Map([
859 ]);
860
861 type HookKind = "State" | "Ref" | "Custom" | "Memo";
857 -type Hook = { kind: HookKind; effectKind: Effect; valueKind: ValueKind };
862 +type Hook = {
863 + kind: HookKind;
864 + name: string;
865 + effectKind: Effect;
866 + valueKind: ValueKind;
867 +};
868
869 export function parseHookCall(place: Place): Hook | null {
870 const name = place.identifier.name;
@@ -867,6 +877,7 @@ export function parseHookCall(place: Place): Hook | null {
877 }
878 return {
879 kind: "Custom",
880 + name: place.identifier.name ?? "",
881 effectKind: Effect.Mutate,
882 valueKind: ValueKind.Mutable,
883 };