13
import {Err, Ok, Result} from '../Utils/Result';
14
import {
15
HIRFunction,
16
- IdentifierId,
16
ReactiveFunction,
17
assertConsistentIdentifiers,
18
assertTerminalPredsExist,
160
pruneMaybeThrows(hir);
161
log({kind: 'hir', name: 'PruneMaybeThrows', value: hir});
162
164
- env.tryRecord(() => {
165
- validateContextVariableLValues(hir);
166
- });
167
- env.tryRecord(() => {
168
- validateUseMemo(hir);
169
- });
163
+ validateContextVariableLValues(hir);
164
+ validateUseMemo(hir);
165
166
if (env.enableDropManualMemoization) {
167
dropManualMemoization(hir);
197
198
if (env.enableValidations) {
199
if (env.config.validateHooksUsage) {
205
- env.tryRecord(() => {
206
- validateHooksUsage(hir);
207
- });
200
+ validateHooksUsage(hir);
201
}
202
if (env.config.validateNoCapitalizedCalls) {
210
- env.tryRecord(() => {
211
- validateNoCapitalizedCalls(hir);
212
- });
203
+ validateNoCapitalizedCalls(hir);
204
}
205
}
206
210
analyseFunctions(hir);
211
log({kind: 'hir', name: 'AnalyseFunctions', value: hir});
212
222
- env.tryRecord(() => {
223
- inferMutationAliasingEffects(hir);
224
- });
213
+ inferMutationAliasingEffects(hir);
214
log({kind: 'hir', name: 'InferMutationAliasingEffects', value: hir});
215
216
if (env.outputMode === 'ssr') {
224
pruneMaybeThrows(hir);
225
log({kind: 'hir', name: 'PruneMaybeThrows', value: hir});
226
238
- env.tryRecord(() => {
239
- inferMutationAliasingRanges(hir, {
240
- isFunctionExpression: false,
241
- });
227
+ inferMutationAliasingRanges(hir, {
228
+ isFunctionExpression: false,
229
});
230
log({kind: 'hir', name: 'InferMutationAliasingRanges', value: hir});
231
if (env.enableValidations) {
245
- env.tryRecord(() => {
246
- validateLocalsNotReassignedAfterRender(hir);
247
- });
232
+ validateLocalsNotReassignedAfterRender(hir);
233
234
if (env.config.assertValidMutableRanges) {
235
assertValidMutableRanges(hir);
236
}
237
238
if (env.config.validateRefAccessDuringRender) {
254
- env.tryRecord(() => {
255
- validateNoRefAccessInRender(hir);
256
- });
239
+ validateNoRefAccessInRender(hir);
240
}
241
242
if (env.config.validateNoSetStateInRender) {
260
- env.tryRecord(() => {
261
- validateNoSetStateInRender(hir);
262
- });
243
+ validateNoSetStateInRender(hir);
244
}
245
246
if (
249
) {
250
env.logErrors(validateNoDerivedComputationsInEffects_exp(hir));
251
} else if (env.config.validateNoDerivedComputationsInEffects) {
271
- env.tryRecord(() => {
272
- validateNoDerivedComputationsInEffects(hir);
273
- });
252
+ validateNoDerivedComputationsInEffects(hir);
253
}
254
255
if (env.config.validateNoSetStateInEffects && env.outputMode === 'lint') {
260
env.logErrors(validateNoJSXInTryStatement(hir));
261
}
262
284
- env.tryRecord(() => {
285
- validateNoFreezingKnownMutableFunctions(hir);
286
- });
263
+ validateNoFreezingKnownMutableFunctions(hir);
264
}
265
266
inferReactivePlaces(hir);
272
env.config.validateExhaustiveEffectDependencies
273
) {
274
// NOTE: this relies on reactivity inference running first
298
- env.tryRecord(() => {
299
- validateExhaustiveDependencies(hir);
300
- });
275
+ validateExhaustiveDependencies(hir);
276
}
277
}
278
301
log({kind: 'hir', name: 'InferReactiveScopeVariables', value: hir});
302
}
303
329
- let fbtOperands: Set<IdentifierId> = new Set();
330
- fbtOperands = memoizeFbtAndMacroOperandsInSameScope(hir);
304
+ const fbtOperands = memoizeFbtAndMacroOperandsInSameScope(hir);
305
log({
306
kind: 'hir',
307
name: 'MemoizeFbtAndMacroOperandsInSameScope',
386
});
387
assertTerminalSuccessorsExist(hir);
388
assertTerminalPredsExist(hir);
389
+
390
propagateScopeDependenciesHIR(hir);
391
log({
392
kind: 'hir',
394
value: hir,
395
});
396
422
- let reactiveFunction!: ReactiveFunction;
423
- reactiveFunction = buildReactiveFunction(hir);
397
+ const reactiveFunction = buildReactiveFunction(hir);
398
log({
399
kind: 'reactive',
400
name: 'BuildReactiveFunction',
481
value: reactiveFunction,
482
});
483
510
- let uniqueIdentifiers: Set<string> = new Set();
511
- uniqueIdentifiers = renameVariables(reactiveFunction);
484
+ const uniqueIdentifiers = renameVariables(reactiveFunction);
485
log({
486
kind: 'reactive',
487
name: 'RenameVariables',
499
env.config.enablePreserveExistingMemoizationGuarantees ||
500
env.config.validatePreserveExistingMemoizationGuarantees
501
) {
529
- env.tryRecord(() => {
530
- validatePreservedManualMemoization(reactiveFunction);
531
- });
502
+ validatePreservedManualMemoization(reactiveFunction);
503
}
504
505
const ast = codegenFunction(reactiveFunction, {
512
}
513
514
if (env.config.validateSourceLocations) {
544
- env.tryRecord(() => {
545
- validateSourceLocations(func, ast, env);
546
- });
515
+ validateSourceLocations(func, ast, env);
516
}
517
518
/**