[be] Inline buildMutatedDeps
Sathya Gunasekaran committed
Feb 2, 2023 at 14:05 UTC
12274f30b9ce08179416345b425a5df041c257d4
1 file changed
+10
-24
compiler/forget/src/Inference/AnalyseFunctions.ts
+10
-24
@@ -77,49 +77,35 @@ function infer(
77
properties: Map<Identifier, Dependency>
78
) {
79
const func = value.loweredFunc;
80
- const mutations: Array<Place> = func.context.filter((dep) =>
81
- isMutated(dep.identifier)
82
- );
83
- value.mutatedDeps = buildMutatedDeps(
84
- mutations,
85
- value.dependencies,
86
- properties
87
- );
88
-}
89
-
90
-function isMutated(id: Identifier) {
91
- return id.mutableRange.end - id.mutableRange.start > 1;
92
-}
93
-
94
-function buildMutatedDeps(
95
- mutations: Place[],
96
- capturedDeps: Place[],
97
- properties: Map<Identifier, Dependency>
98
-): Place[] {
99
- const mutatedIds: Set<string> = new Set(
80
+ const mutations = func.context.filter((dep) => isMutated(dep.identifier));
81
+ const mutatedVariables = new Set(
82
mutations
83
.map((m) => m.identifier.name)
84
.filter((m) => m !== null) as string[]
85
);
86
const mutatedDeps: Place[] = [];
87
106
- for (const dep of capturedDeps) {
88
+ for (const dep of value.dependencies) {
89
if (properties.has(dep.identifier)) {
90
let captured = properties.get(dep.identifier)!;
91
let name = captured.place.identifier.name;
92
111
- if (name === null || !mutatedIds.has(name)) {
93
+ if (name === null || !mutatedVariables.has(name)) {
94
continue;
95
}
96
97
mutatedDeps.push(dep);
98
} else if (
99
dep.identifier.name !== null &&
118
- mutatedIds.has(dep.identifier.name)
100
+ mutatedVariables.has(dep.identifier.name)
101
) {
102
mutatedDeps.push(dep);
103
}
104
}
105
124
- return mutatedDeps;
106
+ value.mutatedDeps = mutatedDeps;
107
+}
108
+
109
+function isMutated(id: Identifier) {
110
+ return id.mutableRange.end - id.mutableRange.start > 1;
111
}