main
rs 50 lines 2.2 KB
Raw
1 // Copyright (c) Meta Platforms, Inc. and affiliates.
2 //
3 // This source code is licensed under the MIT license found in the
4 // LICENSE file in the root directory of this source tree.
5
6 //! Reactive scope passes for the React Compiler.
7 //!
8 //! Converts the HIR CFG into a tree-structured `ReactiveFunction` and runs
9 //! scope-related transformation passes (pruning, merging, renaming, etc.).
10 //!
11 //! Corresponds to `src/ReactiveScopes/` in the TypeScript compiler.
12
13 mod assert_scope_instructions_within_scopes;
14 mod assert_well_formed_break_targets;
15 mod build_reactive_function;
16 pub mod codegen_reactive_function;
17 mod extract_scope_declarations_from_destructuring;
18 mod merge_reactive_scopes_that_invalidate_together;
19 pub mod print_reactive_function;
20 mod promote_used_temporaries;
21 mod propagate_early_returns;
22 mod prune_always_invalidating_scopes;
23 mod prune_hoisted_contexts;
24 mod prune_non_escaping_scopes;
25 mod prune_non_reactive_dependencies;
26 mod prune_unused_labels;
27 mod prune_unused_lvalues;
28 mod prune_unused_scopes;
29 mod rename_variables;
30 mod stabilize_block_ids;
31 pub mod visitors;
32
33 pub use assert_scope_instructions_within_scopes::assert_scope_instructions_within_scopes;
34 pub use assert_well_formed_break_targets::assert_well_formed_break_targets;
35 pub use build_reactive_function::build_reactive_function;
36 pub use codegen_reactive_function::codegen_function;
37 pub use extract_scope_declarations_from_destructuring::extract_scope_declarations_from_destructuring;
38 pub use merge_reactive_scopes_that_invalidate_together::merge_reactive_scopes_that_invalidate_together;
39 pub use print_reactive_function::debug_reactive_function;
40 pub use promote_used_temporaries::promote_used_temporaries;
41 pub use propagate_early_returns::propagate_early_returns;
42 pub use prune_always_invalidating_scopes::prune_always_invalidating_scopes;
43 pub use prune_hoisted_contexts::prune_hoisted_contexts;
44 pub use prune_non_escaping_scopes::prune_non_escaping_scopes;
45 pub use prune_non_reactive_dependencies::prune_non_reactive_dependencies;
46 pub use prune_unused_labels::prune_unused_labels;
47 pub use prune_unused_lvalues::prune_unused_lvalues;
48 pub use prune_unused_scopes::prune_unused_scopes;
49 pub use rename_variables::rename_variables;
50 pub use stabilize_block_ids::stabilize_block_ids;