FindLastUsageVisitor Class — react Architecture
Architecture documentation for the FindLastUsageVisitor class in MergeReactiveScopesThatInvalidateTogether.ts from the react codebase.
Entity Profile
Dependency Diagram
graph TD 67281297_ccca_b8cf_1492_cc1d8f119b8a["FindLastUsageVisitor"] 006711fe_6949_9be8_4726_2031284f3328["MergeReactiveScopesThatInvalidateTogether.ts"] 67281297_ccca_b8cf_1492_cc1d8f119b8a -->|defined in| 006711fe_6949_9be8_4726_2031284f3328 a5ee5bf7_c39f_5e11_a6de_764e4d21eb07["visitPlace()"] 67281297_ccca_b8cf_1492_cc1d8f119b8a -->|method| a5ee5bf7_c39f_5e11_a6de_764e4d21eb07
Relationship Graph
Source Code
compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/MergeReactiveScopesThatInvalidateTogether.ts lines 101–119
class FindLastUsageVisitor extends ReactiveFunctionVisitor<void> {
/*
* TODO LeaveSSA: use IdentifierId for more precise tracking
* Using DeclarationId is necessary for compatible output but produces suboptimal results
* in cases where a scope defines a variable, but that version is never read and always
* overwritten later.
* see reassignment-separate-scopes.js for example
*/
lastUsage: Map<DeclarationId, InstructionId> = new Map();
override visitPlace(id: InstructionId, place: Place, _state: void): void {
const previousUsage = this.lastUsage.get(place.identifier.declarationId);
const lastUsage =
previousUsage !== undefined
? makeInstructionId(Math.max(previousUsage, id))
: id;
this.lastUsage.set(place.identifier.declarationId, lastUsage);
}
}
Domain
Source
Frequently Asked Questions
What is the FindLastUsageVisitor class?
FindLastUsageVisitor is a class in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/MergeReactiveScopesThatInvalidateTogether.ts.
Where is FindLastUsageVisitor defined?
FindLastUsageVisitor is defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/MergeReactiveScopesThatInvalidateTogether.ts at line 101.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free