@@ -1082,7 +1082,7 @@ extension JNISwift2JavaGenerator {
10821082 indirect case extractSwiftProtocolValue(
10831083 NativeSwiftConversionStep ,
10841084 typeMetadataVariableName: NativeSwiftConversionStep ,
1085- protocolNames : [ String ]
1085+ protocolTypes : [ SwiftNominalType ]
10861086 )
10871087
10881088 /// Extracts a swift type at a pointer given by a long.
@@ -1228,12 +1228,10 @@ extension JNISwift2JavaGenerator {
12281228 let protocolTypes,
12291229 let allowsJavaImplementations
12301230 ) :
1231- let protocolNames = protocolTypes. map { $0. nominalTypeDecl. qualifiedName }
1232-
12331231 let inner = inner. render ( & printer, placeholder)
12341232 let variableName = " \( inner) swiftObject$ "
1235- let compositeProtocolName = " ( \( protocolNames . joined ( separator : " & " ) ) ) "
1236- printer. print ( " let \( variableName) : \( compositeProtocolName ) " )
1233+ let existentialType = SwiftKitPrinting . renderExistentialType ( protocolTypes )
1234+ printer. print ( " let \( variableName) : \( existentialType ) " )
12371235
12381236 func printStandardJExtractBlock( _ printer: inout CodePrinter ) {
12391237 let pointerVariableName = " \( inner) pointer$ "
@@ -1247,7 +1245,7 @@ extension JNISwift2JavaGenerator {
12471245 let existentialName = NativeSwiftConversionStep . extractSwiftProtocolValue (
12481246 . constant( pointerVariableName) ,
12491247 typeMetadataVariableName: . constant( typeMetadataVariableName) ,
1250- protocolNames : protocolNames
1248+ protocolTypes : protocolTypes
12511249 ) . render ( & printer, placeholder)
12521250
12531251 printer. print ( " \( variableName) = \( existentialName) " )
@@ -1276,12 +1274,12 @@ extension JNISwift2JavaGenerator {
12761274
12771275 return variableName
12781276
1279- case . extractSwiftProtocolValue( let inner, let typeMetadataVariableName, let protocolNames ) :
1277+ case . extractSwiftProtocolValue( let inner, let typeMetadataVariableName, let protocolTypes ) :
12801278 let inner = inner. render ( & printer, placeholder)
12811279 let typeMetadataVariableName = typeMetadataVariableName. render ( & printer, placeholder)
12821280 let existentialName = " \( inner) Existential$ "
12831281
1284- let compositeProtocolName = " ( \( protocolNames . joined ( separator : " & " ) ) ) "
1282+ let existentialType = SwiftKitPrinting . renderExistentialType ( protocolTypes )
12851283
12861284 // TODO: Remove the _openExistential when we decide to only support language mode v6+
12871285 printer. print (
@@ -1294,10 +1292,10 @@ extension JNISwift2JavaGenerator {
12941292 fatalError( " \( inner) memory address was null " )
12951293 }
12961294 #if hasFeature(ImplicitOpenExistentials)
1297- let \( existentialName) = \( inner) RawPointer$.load(as: \( inner) DynamicType$) as! any \( compositeProtocolName )
1295+ let \( existentialName) = \( inner) RawPointer$.load(as: \( inner) DynamicType$) as! \( existentialType )
12981296 #else
1299- func \( inner) DoLoad<Ty>(_ ty: Ty.Type) -> any \( compositeProtocolName ) {
1300- \( inner) RawPointer$.load(as: ty) as! any \( compositeProtocolName )
1297+ func \( inner) DoLoad<Ty>(_ ty: Ty.Type) -> \( existentialType ) {
1298+ \( inner) RawPointer$.load(as: ty) as! \( existentialType )
13011299 }
13021300 let \( existentialName) = _openExistential( \( inner) DynamicType$, do: \( inner) DoLoad)
13031301 #endif
0 commit comments