From 024ce5d1d4e674ba15840cd81a0b04e575656d47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Osadnik?= Date: Wed, 14 Aug 2019 04:55:37 -0700 Subject: [PATCH] Change type of params in methods' protocols to nongeneric Summary: It was mistake which I fix here. Type of param in protocols should be generated struct. See generated struct in snap. It's exactly how it was in previous codegen Reviewed By: RSNara Differential Revision: D16770579 fbshipit-source-id: dac9c15c5d91a41ab2d06aea416f64bd7deb4476 --- .../modules/GenerateModuleHObjCpp.js | 22 +++++++++++-------- .../GenerateModuleHObjCpp-test.js.snap | 2 +- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/react-native-codegen/src/generators/modules/GenerateModuleHObjCpp.js b/packages/react-native-codegen/src/generators/modules/GenerateModuleHObjCpp.js index 1225a537db5..be4a3ac79b3 100644 --- a/packages/react-native-codegen/src/generators/modules/GenerateModuleHObjCpp.js +++ b/packages/react-native-codegen/src/generators/modules/GenerateModuleHObjCpp.js @@ -182,26 +182,30 @@ module.exports = { .map(prop => { const nativeArgs = prop.typeAnnotation.params .map((param, i) => { + let paramObjCType; if ( param.typeAnnotation.type === 'ObjectTypeAnnotation' && param.typeAnnotation.properties ) { + const variableName = + capitalizeFirstLetter(prop.name) + + capitalizeFirstLetter(param.name); objectForGeneratingStructs.push({ - name: - capitalizeFirstLetter(prop.name) + - capitalizeFirstLetter(param.name), + name: variableName, object: { type: 'ObjectTypeAnnotation', properties: param.typeAnnotation.properties, }, }); + paramObjCType = `JS::Native::_MODULE_NAME_::::Spec${variableName}&`; + } else { + paramObjCType = translatePrimitiveJSTypeToObjCType( + param, + `Unspopported type for param "${param.name}" in ${ + prop.name + }. Found: ${param.typeAnnotation.type}`, + ); } - const paramObjCType = translatePrimitiveJSTypeToObjCType( - param, - `Unspopported type for param "${param.name}" in ${ - prop.name - }. Found: ${param.typeAnnotation.type}`, - ); return `${i === 0 ? '' : param.name}:(${paramObjCType})${ param.name }`; diff --git a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleHObjCpp-test.js.snap b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleHObjCpp-test.js.snap index d13ddcf96f4..5e6858d240e 100644 --- a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleHObjCpp-test.js.snap +++ b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleHObjCpp-test.js.snap @@ -149,7 +149,7 @@ inline NSString *JS::NativeSampleTurboModule::SpecDifficultAE::F() const @protocol NativeSampleTurboModuleSpec -- (NSDictionary *) difficult:(NSDictionary *)A; +- (NSDictionary *) difficult:(JS::NativeSampleTurboModule::SpecDifficultA&)A; @end