Skip to content

Commit 2c8725f

Browse files
authored
[compiler] snap fails if nothing compiled, unless @expectNothingCompiled (facebook#35615)
A few times an agent has constructed fixtures that are silently skipped because the component has no jsx or hook calls. This PR updates snap to ensure that for each fixture either: 1) There are at least one compile success/failure *and* the `@expectNothingCompiled` pragma is missing 2) OR there are zero success/failures *and* the `@expectNothingCompiled` pragma is present This ensures we are intentional about fixtures that are expected not to have compilation, and know if that expectation breaks.
1 parent 03613cd commit 2c8725f

File tree

59 files changed

+116
-81
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+116
-81
lines changed

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/class-component-with-render-helper.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-
// @compilationMode:"infer"
5+
// @expectNothingCompiled @compilationMode:"infer"
66
class Component {
77
_renderMessage = () => {
88
const Message = () => {
@@ -22,7 +22,7 @@ class Component {
2222
## Code
2323

2424
```javascript
25-
// @compilationMode:"infer"
25+
// @expectNothingCompiled @compilationMode:"infer"
2626
class Component {
2727
_renderMessage = () => {
2828
const Message = () => {

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/class-component-with-render-helper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @compilationMode:"infer"
1+
// @expectNothingCompiled @compilationMode:"infer"
22
class Component {
33
_renderMessage = () => {
44
const Message = () => {

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/custom-opt-out-directive.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-
// @customOptOutDirectives:["use todo memo"]
5+
// @expectNothingCompiled @customOptOutDirectives:["use todo memo"]
66
function Component() {
77
'use todo memo';
88
return <div>hello world!</div>;
@@ -18,7 +18,7 @@ export const FIXTURE_ENTRYPOINT = {
1818
## Code
1919

2020
```javascript
21-
// @customOptOutDirectives:["use todo memo"]
21+
// @expectNothingCompiled @customOptOutDirectives:["use todo memo"]
2222
function Component() {
2323
"use todo memo";
2424
return <div>hello world!</div>;

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/custom-opt-out-directive.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @customOptOutDirectives:["use todo memo"]
1+
// @expectNothingCompiled @customOptOutDirectives:["use todo memo"]
22
function Component() {
33
'use todo memo';
44
return <div>hello world!</div>;

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/dont-memoize-primitive-function-call-non-escaping.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-
// @compilationMode:"infer" @enablePreserveExistingMemoizationGuarantees @validatePreserveExistingMemoizationGuarantees
5+
// @expectNothingCompiled @compilationMode:"infer" @enablePreserveExistingMemoizationGuarantees @validatePreserveExistingMemoizationGuarantees
66
import {useMemo} from 'react';
77
import {makeObject_Primitives, ValidateMemoization} from 'shared-runtime';
88

@@ -37,7 +37,7 @@ export const FIXTURE_ENTRYPOINT = {
3737
## Code
3838

3939
```javascript
40-
// @compilationMode:"infer" @enablePreserveExistingMemoizationGuarantees @validatePreserveExistingMemoizationGuarantees
40+
// @expectNothingCompiled @compilationMode:"infer" @enablePreserveExistingMemoizationGuarantees @validatePreserveExistingMemoizationGuarantees
4141
import { useMemo } from "react";
4242
import { makeObject_Primitives, ValidateMemoization } from "shared-runtime";
4343

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/dont-memoize-primitive-function-call-non-escaping.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @compilationMode:"infer" @enablePreserveExistingMemoizationGuarantees @validatePreserveExistingMemoizationGuarantees
1+
// @expectNothingCompiled @compilationMode:"infer" @enablePreserveExistingMemoizationGuarantees @validatePreserveExistingMemoizationGuarantees
22
import {useMemo} from 'react';
33
import {makeObject_Primitives, ValidateMemoization} from 'shared-runtime';
44

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/gating/repro-no-gating-import-without-compiled-functions.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-
// @gating
5+
// @expectNothingCompiled @gating
66
import {isForgetEnabled_Fixtures} from 'ReactForgetFeatureFlag';
77

88
export default 42;
@@ -12,7 +12,7 @@ export default 42;
1212
## Code
1313

1414
```javascript
15-
// @gating
15+
// @expectNothingCompiled @gating
1616
import { isForgetEnabled_Fixtures } from "ReactForgetFeatureFlag";
1717

1818
export default 42;
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @gating
1+
// @expectNothingCompiled @gating
22
import {isForgetEnabled_Fixtures} from 'ReactForgetFeatureFlag';
33

44
export default 42;

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-dont-compile-components-with-multiple-params.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-
// @compilationMode:"infer"
5+
// @expectNothingCompiled @compilationMode:"infer"
66
// Takes multiple parameters - not a component!
77
function Component(foo, bar) {
88
return <div />;
@@ -18,7 +18,7 @@ export const FIXTURE_ENTRYPOINT = {
1818
## Code
1919

2020
```javascript
21-
// @compilationMode:"infer"
21+
// @expectNothingCompiled @compilationMode:"infer"
2222
// Takes multiple parameters - not a component!
2323
function Component(foo, bar) {
2424
return <div />;

compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-dont-compile-components-with-multiple-params.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @compilationMode:"infer"
1+
// @expectNothingCompiled @compilationMode:"infer"
22
// Takes multiple parameters - not a component!
33
function Component(foo, bar) {
44
return <div />;

0 commit comments

Comments
 (0)