7
7
8
8
package com.facebook.react.internal.turbomodule.core
9
9
10
- import com.facebook.infer.annotation.Assertions
11
10
import com.facebook.proguard.annotations.DoNotStrip
12
11
import com.facebook.react.bridge.Callback
13
12
import com.facebook.react.bridge.Dynamic
@@ -56,9 +55,9 @@ internal object TurboModuleInteropUtils {
56
55
if (returnType != MutableMap ::class .java) {
57
56
throw ParsingException (moduleName, " getConstants must return a Map" )
58
57
}
59
- } else if (annotation != null &&
60
- (annotation.isBlockingSynchronousMethod && returnType == Void .TYPE ||
61
- ! annotation.isBlockingSynchronousMethod && returnType != Void .TYPE )) {
58
+ } else if (( annotation != null ) &&
59
+ (( annotation.isBlockingSynchronousMethod && returnType == java.lang. Void .TYPE ) ||
60
+ ( ! annotation.isBlockingSynchronousMethod && returnType != java.lang. Void .TYPE ) )) {
62
61
throw ParsingException (
63
62
moduleName,
64
63
" TurboModule system assumes returnType == void iff the method is synchronous." )
@@ -77,8 +76,8 @@ internal object TurboModuleInteropUtils {
77
76
78
77
private fun getMethodsFromModule (module : NativeModule ): Array <Method > {
79
78
var classForMethods: Class <out NativeModule > = module.javaClass
80
- val superClass = classForMethods.superclass as Class <out NativeModule >
81
- if (TurboModule ::class .java.isAssignableFrom(superClass)) {
79
+ val superClass = classForMethods.superclass as ? Class <out NativeModule >
80
+ if (superClass != null && TurboModule ::class .java.isAssignableFrom(superClass)) {
82
81
// For java module that is based on generated flow-type spec, inspect the
83
82
// spec abstract class instead, which is the super class of the given java
84
83
// module.
@@ -123,11 +122,11 @@ internal object TurboModuleInteropUtils {
123
122
return " F"
124
123
}
125
124
126
- if (paramClass == Boolean ::class .java ||
127
- paramClass == Int ::class .java ||
128
- paramClass == Double ::class .java ||
129
- paramClass == Float ::class .java ||
130
- paramClass == String ::class .java ||
125
+ if (paramClass == java.lang. Boolean ::class .java ||
126
+ paramClass == java.lang. Integer ::class .java ||
127
+ paramClass == java.lang. Double ::class .java ||
128
+ paramClass == java.lang. Float ::class .java ||
129
+ paramClass == java.lang. String ::class .java ||
131
130
paramClass == Callback ::class .java ||
132
131
paramClass == Promise ::class .java ||
133
132
paramClass == ReadableMap ::class .java ||
@@ -147,31 +146,31 @@ internal object TurboModuleInteropUtils {
147
146
methodName : String ,
148
147
returnClass : Class <* >
149
148
): String {
150
- if (returnClass == Boolean ::class .javaPrimitiveType) {
149
+ if (returnClass == java.lang. Boolean ::class .javaPrimitiveType) {
151
150
return " Z"
152
151
}
153
152
154
- if (returnClass == Int ::class .javaPrimitiveType) {
153
+ if (returnClass == java.lang. Integer ::class .javaPrimitiveType) {
155
154
return " I"
156
155
}
157
156
158
- if (returnClass == Double ::class .javaPrimitiveType) {
157
+ if (returnClass == java.lang. Double ::class .javaPrimitiveType) {
159
158
return " D"
160
159
}
161
160
162
- if (returnClass == Float ::class .javaPrimitiveType) {
161
+ if (returnClass == java.lang. Float ::class .javaPrimitiveType) {
163
162
return " F"
164
163
}
165
164
166
- if (returnClass == Void .TYPE ) {
165
+ if (returnClass == java.lang. Void .TYPE ) {
167
166
return " V"
168
167
}
169
168
170
- if (returnClass == Boolean ::class .java ||
171
- returnClass == Int ::class .java ||
172
- returnClass == Double ::class .java ||
173
- returnClass == Float ::class .java ||
174
- returnClass == String ::class .java ||
169
+ if (returnClass == java.lang. Boolean ::class .java ||
170
+ returnClass == java.lang. Integer ::class .java ||
171
+ returnClass == java.lang. Double ::class .java ||
172
+ returnClass == java.lang. Float ::class .java ||
173
+ returnClass == java.lang. String ::class .java ||
175
174
returnClass == WritableMap ::class .java ||
176
175
returnClass == WritableArray ::class .java ||
177
176
returnClass == MutableMap ::class .java) {
@@ -186,8 +185,8 @@ internal object TurboModuleInteropUtils {
186
185
187
186
private fun convertClassToJniType (cls : Class <* >): String {
188
187
val canonicalName = cls.canonicalName
189
- Assertions .assertNotNull (canonicalName, " Class must have a canonical name" )
190
- return ' L' .toString() + canonicalName!! .replace(' .' , ' /' ) + ' ;'
188
+ requireNotNull (canonicalName) { " Class must have a canonical name" }
189
+ return ' L' .toString() + canonicalName.replace(' .' , ' /' ) + ' ;'
191
190
}
192
191
193
192
private fun getJsArgCount (
@@ -234,24 +233,25 @@ internal object TurboModuleInteropUtils {
234
233
i + = 1
235
234
}
236
235
237
- if (returnClass == Boolean ::class .javaPrimitiveType || returnClass == Boolean ::class .java) {
236
+ if (returnClass == java.lang.Boolean ::class .javaPrimitiveType ||
237
+ returnClass == java.lang.Boolean ::class .java) {
238
238
return " BooleanKind"
239
239
}
240
240
241
- if (returnClass == Double ::class .javaPrimitiveType ||
242
- returnClass == Double ::class .java ||
243
- returnClass == Float ::class .javaPrimitiveType ||
244
- returnClass == Float ::class .java ||
245
- returnClass == Int ::class .javaPrimitiveType ||
246
- returnClass == Int ::class .java) {
241
+ if (returnClass == java.lang. Double ::class .javaPrimitiveType ||
242
+ returnClass == java.lang. Double ::class .java ||
243
+ returnClass == java.lang. Float ::class .javaPrimitiveType ||
244
+ returnClass == java.lang. Float ::class .java ||
245
+ returnClass == java.lang. Integer ::class .javaPrimitiveType ||
246
+ returnClass == java.lang. Integer ::class .java) {
247
247
return " NumberKind"
248
248
}
249
249
250
- if (returnClass == String ::class .java) {
250
+ if (returnClass == java.lang. String ::class .java) {
251
251
return " StringKind"
252
252
}
253
253
254
- if (returnClass == Void .TYPE ) {
254
+ if (returnClass == java.lang. Void .TYPE ) {
255
255
return " VoidKind"
256
256
}
257
257
0 commit comments