From a1502411e8a765a7eb3662784b345a53643ab8bd Mon Sep 17 00:00:00 2001 From: Christoph Pader Date: Thu, 11 Dec 2025 20:53:10 +0000 Subject: [PATCH 1/2] fix: only show warnings for regular React compiler errors --- scripts/react-compiler-compliance-check.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/scripts/react-compiler-compliance-check.ts b/scripts/react-compiler-compliance-check.ts index b758179b8967a..a3c47dc66501e 100644 --- a/scripts/react-compiler-compliance-check.ts +++ b/scripts/react-compiler-compliance-check.ts @@ -139,13 +139,12 @@ async function check({ } } - printResults(results, {shouldPrintSuccesses, shouldPrintSuppressedErrors}); + const isPassed = printResults(results, {shouldPrintSuccesses, shouldPrintSuppressedErrors}); if (shouldGenerateReport) { generateReport(results, reportFileName); } - const isPassed = results.failures.size === 0 && (results.enforcedAddedComponentFailures?.size ?? 0) === 0; return isPassed; } @@ -622,7 +621,7 @@ function findManualMemoizationMatches(source: string): ManualMemoizationMatch[] function printResults( {success, failures, suppressedFailures, enforcedAddedComponentFailures}: CompilerResults, {shouldPrintSuccesses, shouldPrintSuppressedErrors}: PrintResultsOptions, -): void { +): boolean { if (shouldPrintSuccesses && success.size > 0) { log(); logSuccess(`Successfully compiled ${success.size} files with React Compiler:`); @@ -665,10 +664,10 @@ function printResults( const hasEnforcedAddedComponentFailures = enforcedAddedComponentFailures && enforcedAddedComponentFailures.size > 0; - const isPassed = failures.size === 0 && !hasEnforcedAddedComponentFailures; + const isPassed = !hasEnforcedAddedComponentFailures; if (isPassed) { logSuccess('All files pass React Compiler compliance check!'); - return; + return true; } const distinctFileNames = new Set(); @@ -678,10 +677,13 @@ function printResults( if (distinctFileNames.size > 0) { log(); - logError(`Failed to compile ${distinctFileNames.size} files with React Compiler:`); + logWarn(`Failed to compile ${distinctFileNames.size} files with React Compiler:`); log(); printFailures(failures); + + log(); + logWarn('React Compiler errors were printed as warnings for transparency, but these must NOT be fixed and can get ignored.'); } if (hasEnforcedAddedComponentFailures) { @@ -706,6 +708,8 @@ function printResults( log(); logError('The files above failed the React Compiler compliance check. Please fix the issues and run the check again...'); + + return false; } function printFailures(failuresToPrint: FailureMap, level = 0) { From 89790e00165bbb3497cf09adbc78e5da202be9d7 Mon Sep 17 00:00:00 2001 From: Christoph Pader Date: Thu, 11 Dec 2025 21:22:00 +0000 Subject: [PATCH 2/2] fix: show success message if only warnings are shown --- scripts/react-compiler-compliance-check.ts | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/scripts/react-compiler-compliance-check.ts b/scripts/react-compiler-compliance-check.ts index a3c47dc66501e..5d76e08397aed 100644 --- a/scripts/react-compiler-compliance-check.ts +++ b/scripts/react-compiler-compliance-check.ts @@ -664,18 +664,14 @@ function printResults( const hasEnforcedAddedComponentFailures = enforcedAddedComponentFailures && enforcedAddedComponentFailures.size > 0; - const isPassed = !hasEnforcedAddedComponentFailures; - if (isPassed) { - logSuccess('All files pass React Compiler compliance check!'); - return true; - } - const distinctFileNames = new Set(); for (const failure of failures.values()) { distinctFileNames.add(failure.file); } - if (distinctFileNames.size > 0) { + const shouldPrintWarnings = distinctFileNames.size > 0; + + if (shouldPrintWarnings) { log(); logWarn(`Failed to compile ${distinctFileNames.size} files with React Compiler:`); log(); @@ -683,7 +679,11 @@ function printResults( printFailures(failures); log(); - logWarn('React Compiler errors were printed as warnings for transparency, but these must NOT be fixed and can get ignored.'); + logWarn('React Compiler errors were printed as warnings for transparency, but these must NOT be fixed and can be ignored.'); + } + + if (shouldPrintWarnings && !hasEnforcedAddedComponentFailures) { + log(); } if (hasEnforcedAddedComponentFailures) { @@ -706,6 +706,12 @@ function printResults( } } + const isPassed = !hasEnforcedAddedComponentFailures; + if (isPassed) { + logSuccess(`React Compiler compliance check passed ${shouldPrintWarnings ? 'with warnings' : ''}!`); + return true; + } + log(); logError('The files above failed the React Compiler compliance check. Please fix the issues and run the check again...');