Skip to content

Commit bd788b4

Browse files
committed
[compiler] Add enablePropagateDepsInHIR flag
Adding new feature flag in preparation for #30894 ghstack-source-id: 5927802 Pull Request resolved: #30893
1 parent 7b98a16 commit bd788b4

13 files changed

+20
-18
lines changed

compiler/packages/babel-plugin-react-compiler/src/HIR/Environment.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ const EnvironmentConfigSchema = z.object({
222222
*/
223223
enableUseTypeAnnotations: z.boolean().default(false),
224224

225+
enablePropagateDepsInHIR: z.boolean().default(true),
226+
225227
/**
226228
* Enables inference of optional dependency chains. Without this flag
227229
* a property chain such as `props?.items?.foo` will infer as a dep on

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-as-memo-dep.expect.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## Input
33

44
```javascript
5-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
5+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
66
function Component(props) {
77
const data = useMemo(() => {
88
return props?.items.edges?.nodes.map();
@@ -15,7 +15,7 @@ function Component(props) {
1515
## Code
1616
1717
```javascript
18-
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
18+
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
1919
function Component(props) {
2020
const $ = _c(4);
2121

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-as-memo-dep.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
1+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
22
function Component(props) {
33
const data = useMemo(() => {
44
return props?.items.edges?.nodes.map();

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-inverted-optionals-parallel-paths.expect.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## Input
33

44
```javascript
5-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
5+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
66
import {ValidateMemoization} from 'shared-runtime';
77
function Component(props) {
88
const data = useMemo(() => {
@@ -19,7 +19,7 @@ function Component(props) {
1919
## Code
2020
2121
```javascript
22-
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
22+
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
2323
import { ValidateMemoization } from "shared-runtime";
2424
function Component(props) {
2525
const $ = _c(2);

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-inverted-optionals-parallel-paths.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
1+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
22
import {ValidateMemoization} from 'shared-runtime';
33
function Component(props) {
44
const data = useMemo(() => {

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-single-with-unconditional.expect.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## Input
33

44
```javascript
5-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
5+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
66
import {ValidateMemoization} from 'shared-runtime';
77
function Component(props) {
88
const data = useMemo(() => {
@@ -19,7 +19,7 @@ function Component(props) {
1919
## Code
2020
2121
```javascript
22-
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
22+
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
2323
import { ValidateMemoization } from "shared-runtime";
2424
function Component(props) {
2525
const $ = _c(7);

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-single-with-unconditional.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
1+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
22
import {ValidateMemoization} from 'shared-runtime';
33
function Component(props) {
44
const data = useMemo(() => {

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-single.expect.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## Input
33

44
```javascript
5-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
5+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
66
import {ValidateMemoization} from 'shared-runtime';
77
function Component(props) {
88
const data = useMemo(() => {
@@ -18,7 +18,7 @@ function Component(props) {
1818
## Code
1919
2020
```javascript
21-
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
21+
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
2222
import { ValidateMemoization } from "shared-runtime";
2323
function Component(props) {
2424
const $ = _c(7);

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-single.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
1+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
22
import {ValidateMemoization} from 'shared-runtime';
33
function Component(props) {
44
const data = useMemo(() => {

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-with-conditional-optional.expect.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## Input
33

44
```javascript
5-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
5+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
66
import {ValidateMemoization} from 'shared-runtime';
77
function Component(props) {
88
const data = useMemo(() => {
@@ -23,7 +23,7 @@ function Component(props) {
2323
## Code
2424
2525
```javascript
26-
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
26+
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
2727
import { ValidateMemoization } from "shared-runtime";
2828
function Component(props) {
2929
const $ = _c(9);

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-with-conditional-optional.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
1+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
22
import {ValidateMemoization} from 'shared-runtime';
33
function Component(props) {
44
const data = useMemo(() => {

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-with-conditional.expect.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## Input
33

44
```javascript
5-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
5+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
66
import {ValidateMemoization} from 'shared-runtime';
77
function Component(props) {
88
const data = useMemo(() => {
@@ -23,7 +23,7 @@ function Component(props) {
2323
## Code
2424
2525
```javascript
26-
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
26+
import { c as _c } from "react/compiler-runtime"; // @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
2727
import { ValidateMemoization } from "shared-runtime";
2828
function Component(props) {
2929
const $ = _c(9);

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/optional-member-expression-with-conditional.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies
1+
// @validatePreserveExistingMemoizationGuarantees @enableOptionalDependencies @enablePropagateDepsInHIR:false
22
import {ValidateMemoization} from 'shared-runtime';
33
function Component(props) {
44
const data = useMemo(() => {

0 commit comments

Comments
 (0)