dillon1000/react
Commit
Browse files [aliasing] Introduce Effect.Capture
Effect.Capture is very similar to Effect.Read, but the only difference is that this reference is stored somewhere via a Effect.Store. Previously, any operand associated with a Effect.Store in the same instruction would get aliased -- so there was no need to explicitly differentiate between a "normal read" and "read that gets stored". This difference is now explicit with FunctionExpression where every dependency is "read" but only a few are "captured" for store (and mutation). In a follow up PR, the mutating deps will have an Effect.Capture to differentiate from the other non mutating deps (Effect.Read).
Changed paths4 files
First-parent comparisoncompiler/forget/src/HIR/HIR.ts ModifiedM compiler/forget/src/Inference/InferAliasForStores.ts ModifiedM compiler/forget/src/Inference/InferMutableLifetimes.ts ModifiedM compiler/forget/src/Inference/InferReferenceEffects.ts ModifiedPatch
Files changed
Rendering syntax-highlighted changes…