mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
generate-artifacts-executor: fix parsing .class in complex classes (#51813)
Summary: There is an edge case in the codegen `findRCTComponentViewProtocolClass` function where the parsing of the Component Class will fail if there is another `.class` call in the same file after the `Class<RCTComponentViewProtocol>` function. This ends up resulting in a `RCTThirdPartyComponentsProvider.mm` file that looks like the image bellow <img width="1052" alt="image" src="https://github.com/user-attachments/assets/26ce93be-0370-4852-a949-9da21762ff7f" /> You can reproduce this with the following ``` Class<RCTComponentViewProtocol> XYZCls(void) { return XYZ.class; } // this comment breaks codegen .class ``` ## Changelog: [IOS] [FIXED] - Fix codegen extracting `.class` from complex component classes Pull Request resolved: https://github.com/facebook/react-native/pull/51813 Test Plan: Run codegen locally, use this patch in the expo/expo repo and CI should be green Reviewed By: cipolleschi Differential Revision: D75964424 Pulled By: cortinico fbshipit-source-id: 50e45aa2ac6e43c75ee6fdd76791c591d81d4df7
This commit is contained in:
committed by
React Native Bot
parent
0a9ea3932a
commit
4c9490c702
packages/react-native/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js
Vendored
+1
-1
@@ -186,7 +186,7 @@ function findRCTComponentViewProtocolClass(filepath) {
|
||||
const lines = fileContent.split('\n');
|
||||
const signatureIndex = lines.findIndex(line => regex.test(line));
|
||||
const returnRegex = /return (.*)\.class/;
|
||||
const classNameMatch = String(lines.slice(signatureIndex)).match(
|
||||
const classNameMatch = String(lines.slice(signatureIndex).join('\n')).match(
|
||||
returnRegex,
|
||||
);
|
||||
if (classNameMatch) {
|
||||
|
||||
Reference in New Issue
Block a user