Skip to content

Commit b55cbee

Browse files
committed
change naming scheme; types are "extracted" since SwiftExtract
1 parent 81c720e commit b55cbee

31 files changed

Lines changed: 348 additions & 411 deletions

Sources/JExtractSwiftLib/ImportedDecls+JavaNaming.swift renamed to Sources/JExtractSwiftLib/ExtractedDecls+JavaNaming.swift

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,26 @@
1515
import SwiftExtract
1616

1717
// ==== -----------------------------------------------------------------------
18-
// MARK: Java-facing name aliases for ImportedNominalType
18+
// MARK: Java name typealiases
1919

20-
extension ImportedNominalType {
20+
package typealias JavaClassName = String
21+
package typealias JavaFullyQualifiedClassName = String
22+
package typealias JavaPackageName = String
23+
24+
// ==== -----------------------------------------------------------------------
25+
// MARK: Java-facing name aliases for ExtractedNominalType
26+
27+
extension ExtractedNominalType {
2128
package var effectiveJavaTypeName: SwiftQualifiedTypeName { effectiveOutputTypeName }
2229
package var effectiveJavaName: String { effectiveOutputName }
2330
package var effectiveJavaSimpleName: String { effectiveOutputSimpleName }
2431
package var javaGenericClause: String { outputGenericClause }
2532
}
2633

2734
// ==== -----------------------------------------------------------------------
28-
// MARK: Java-facing name aliases for ImportedFunc
35+
// MARK: Java-facing name aliases for ExtractedFunc
2936

30-
extension ImportedFunc {
37+
extension ExtractedFunc {
3138
/// The Java getter name for a Swift property/subscript getter, following
3239
/// Java Beans conventions: `get<Name>` for non-boolean, `is<Name>` for
3340
/// boolean (unless the property already starts with `is`, in which case

Sources/JExtractSwiftLib/FFM/FFMSwift2JavaGenerator+FoundationData.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import struct Foundation.URL
2424
extension FFMSwift2JavaGenerator {
2525

2626
/// Print Java helper methods for Foundation.Data type
27-
package func printFoundationDataHelpers(_ printer: inout CodePrinter, _ decl: ImportedNominalType) {
27+
package func printFoundationDataHelpers(_ printer: inout CodePrinter, _ decl: ExtractedNominalType) {
2828
let typeName = decl.swiftNominal.name
2929
let thunkNameCopyBytes = "swiftjava_\(swiftModuleName)_\(typeName)_copyBytes__"
3030

Sources/JExtractSwiftLib/FFM/FFMSwift2JavaGenerator+JavaBindingsPrinting.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import SwiftJavaJNICore
2020
extension FFMSwift2JavaGenerator {
2121
package func printFunctionDowncallMethods(
2222
_ printer: inout CodePrinter,
23-
_ decl: ImportedFunc,
23+
_ decl: ExtractedFunc,
2424
) {
2525
guard let _ = translatedDecl(for: decl) else {
2626
// Failed to translate. Skip.
@@ -40,7 +40,7 @@ extension FFMSwift2JavaGenerator {
4040
/// Print FFM Java binding descriptors for the imported Swift API.
4141
package func printJavaBindingDescriptorClass(
4242
_ printer: inout CodePrinter,
43-
_ decl: ImportedFunc,
43+
_ decl: ExtractedFunc,
4444
) {
4545
let thunkName = thunkNameRegistry.functionThunkName(decl: decl)
4646
let translated = self.translatedDecl(for: decl)!
@@ -271,7 +271,7 @@ extension FFMSwift2JavaGenerator {
271271
/// * User-facing functional interfaces.
272272
func printJavaBindingWrapperHelperClass(
273273
_ printer: inout CodePrinter,
274-
_ decl: ImportedFunc,
274+
_ decl: ExtractedFunc,
275275
) {
276276
let translated = self.translatedDecl(for: decl)!
277277
let bindingDescriptorName = self.thunkNameRegistry.functionThunkName(decl: decl)
@@ -360,7 +360,7 @@ extension FFMSwift2JavaGenerator {
360360
/// with adding `SwiftArena.ofAuto()` at the end.
361361
package func printJavaBindingWrapperMethod(
362362
_ printer: inout CodePrinter,
363-
_ decl: ImportedFunc,
363+
_ decl: ExtractedFunc,
364364
) {
365365
let translated = self.translatedDecl(for: decl)!
366366
let methodName = translated.name
@@ -421,7 +421,7 @@ extension FFMSwift2JavaGenerator {
421421
/// This assumes that all the parameters are passed-in with appropriate names.
422422
package func printDowncall(
423423
_ printer: inout CodePrinter,
424-
_ decl: ImportedFunc,
424+
_ decl: ExtractedFunc,
425425
) {
426426
//=== Part 1: prepare temporary arena if needed.
427427
let translatedSignature = self.translatedDecl(for: decl)!.translatedSignature
@@ -455,7 +455,7 @@ extension FFMSwift2JavaGenerator {
455455

456456
let arena =
457457
if let className = type.className,
458-
analysis.importedTypes[className] != nil
458+
analysis.extractedTypes[className] != nil
459459
{
460460
// Use passed-in 'SwiftArena' for 'SwiftValue'.
461461
"swiftArena"

Sources/JExtractSwiftLib/FFM/FFMSwift2JavaGenerator+SwiftThunkPrinting.swift

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,20 @@ extension FFMSwift2JavaGenerator {
7474
// We have to write all types to their corresponding output file that matches the file they were declared in,
7575
// because otherwise SwiftPM plugins will not pick up files apropriately -- we expect 1 output +SwiftJava.swift file for every input.
7676

77-
let filteredTypes: [String: ImportedNominalType]
77+
let filteredTypes: [String: ExtractedNominalType]
7878
if let singleType = config.singleType {
79-
filteredTypes = self.analysis.importedTypes.filter { $0.key == singleType }
79+
filteredTypes = self.analysis.extractedTypes.filter { $0.key == singleType }
8080
} else {
81-
filteredTypes = self.analysis.importedTypes
81+
filteredTypes = self.analysis.extractedTypes
8282
}
8383

84-
for group: (key: String, value: [Dictionary<String, ImportedNominalType>.Element]) in Dictionary(
84+
for group: (key: String, value: [Dictionary<String, ExtractedNominalType>.Element]) in Dictionary(
8585
grouping: filteredTypes,
8686
by: { $0.value.sourceFilePath },
8787
) {
8888
log.warning("Writing types in file group: \(group.key): \(group.value.map(\.key))")
8989

90-
let importedTypesForThisFile = group.value
90+
let extractedTypesForThisFile = group.value
9191
.map(\.value)
9292
.sorted(by: { $0.qualifiedName < $1.qualifiedName })
9393

@@ -105,7 +105,7 @@ extension FFMSwift2JavaGenerator {
105105
)
106106
self.lookupContext.symbolTable.printImportedModules(&printer)
107107

108-
for ty in importedTypesForThisFile {
108+
for ty in extractedTypesForThisFile {
109109
log.info("Printing Swift thunks for type: \(ty.qualifiedName.bold)")
110110
printer.printSeparator("Thunks for \(ty.qualifiedName)")
111111

@@ -148,7 +148,7 @@ extension FFMSwift2JavaGenerator {
148148
self.lookupContext.symbolTable.printImportedModules(&printer)
149149

150150
self.currentJavaIdentifiers = JavaIdentifierFactory(
151-
self.analysis.importedGlobalFuncs + self.analysis.importedGlobalVariables
151+
self.analysis.extractedGlobalFuncs + self.analysis.extractedGlobalVariables
152152
)
153153

154154
for thunk in stt.renderGlobalThunks() {
@@ -157,7 +157,7 @@ extension FFMSwift2JavaGenerator {
157157
}
158158
}
159159

160-
public func printSwiftThunkSources(_ printer: inout CodePrinter, decl: ImportedFunc) {
160+
public func printSwiftThunkSources(_ printer: inout CodePrinter, decl: ExtractedFunc) {
161161
let stt = SwiftThunkTranslator(self)
162162

163163
for thunk in stt.render(forFunc: decl) {
@@ -166,7 +166,7 @@ extension FFMSwift2JavaGenerator {
166166
}
167167
}
168168

169-
package func printSwiftThunkSources(_ printer: inout CodePrinter, ty: ImportedNominalType) throws {
169+
package func printSwiftThunkSources(_ printer: inout CodePrinter, ty: ExtractedNominalType) throws {
170170
let stt = SwiftThunkTranslator(self)
171171

172172
self.currentJavaIdentifiers = JavaIdentifierFactory(
@@ -191,22 +191,22 @@ struct SwiftThunkTranslator {
191191
func renderGlobalThunks() -> [DeclSyntax] {
192192
var decls: [DeclSyntax] = []
193193
decls.reserveCapacity(
194-
st.analysis.importedGlobalVariables.count + st.analysis.importedGlobalFuncs.count
194+
st.analysis.extractedGlobalVariables.count + st.analysis.extractedGlobalFuncs.count
195195
)
196196

197-
for decl in st.analysis.importedGlobalVariables {
197+
for decl in st.analysis.extractedGlobalVariables {
198198
decls.append(contentsOf: render(forFunc: decl))
199199
}
200200

201-
for decl in st.analysis.importedGlobalFuncs {
201+
for decl in st.analysis.extractedGlobalFuncs {
202202
decls.append(contentsOf: render(forFunc: decl))
203203
}
204204

205205
return decls
206206
}
207207

208208
/// Render all the thunks that make Swift methods accessible to Java.
209-
func renderThunks(forType nominal: ImportedNominalType) -> [DeclSyntax] {
209+
func renderThunks(forType nominal: ExtractedNominalType) -> [DeclSyntax] {
210210
var decls: [DeclSyntax] = []
211211
decls.reserveCapacity(
212212
1 + nominal.initializers.count + nominal.variables.count + nominal.methods.count
@@ -233,7 +233,7 @@ struct SwiftThunkTranslator {
233233
}
234234

235235
/// Accessor to get the `T.self` of the Swift type, without having to rely on mangled name lookups.
236-
func renderSwiftTypeAccessor(_ nominal: ImportedNominalType) -> DeclSyntax {
236+
func renderSwiftTypeAccessor(_ nominal: ExtractedNominalType) -> DeclSyntax {
237237
let funcName = SwiftKitPrinting.Names.getType(
238238
module: st.swiftModuleName,
239239
nominal: nominal,
@@ -248,7 +248,7 @@ struct SwiftThunkTranslator {
248248
"""
249249
}
250250

251-
func render(forFunc decl: ImportedFunc) -> [DeclSyntax] {
251+
func render(forFunc decl: ExtractedFunc) -> [DeclSyntax] {
252252
st.log.trace("Rendering thunks for: \(decl.displayName)")
253253

254254
let thunkName = st.thunkNameRegistry.functionThunkName(decl: decl)
@@ -265,7 +265,7 @@ struct SwiftThunkTranslator {
265265
}
266266

267267
/// Render special thunks for known types like Foundation.Data
268-
func renderSpecificTypeThunks(_ nominal: ImportedNominalType) -> [DeclSyntax] {
268+
func renderSpecificTypeThunks(_ nominal: ExtractedNominalType) -> [DeclSyntax] {
269269
guard let knownType = nominal.swiftNominal.knownTypeKind else {
270270
return []
271271
}
@@ -279,7 +279,7 @@ struct SwiftThunkTranslator {
279279
}
280280

281281
/// Render Swift thunks for Foundation.Data helper methods
282-
private func renderFoundationDataThunks(_ nominal: ImportedNominalType) -> [DeclSyntax] {
282+
private func renderFoundationDataThunks(_ nominal: ExtractedNominalType) -> [DeclSyntax] {
283283
let thunkName = "swiftjava_\(st.swiftModuleName)_\(nominal.swiftNominal.name)_copyBytes__"
284284
let qualifiedName = nominal.swiftNominal.qualifiedName
285285

Sources/JExtractSwiftLib/JNI/JNICaching.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
import SwiftExtract
1616

1717
enum JNICaching {
18-
static func cacheName(for type: ImportedNominalType) -> String {
18+
static func cacheName(for type: ExtractedNominalType) -> String {
1919
cacheName(for: type.effectiveJavaTypeName)
2020
}
2121

2222
static func cacheName(for type: SwiftNominalType) -> String {
2323
cacheName(for: type.nominalTypeDecl.qualifiedTypeName)
2424
}
2525

26-
static func bridgeName(for type: ImportedNominalType) -> String {
26+
static func bridgeName(for type: ExtractedNominalType) -> String {
2727
bridgeName(for: type.swiftNominal.qualifiedTypeName)
2828
}
2929

@@ -39,7 +39,7 @@ enum JNICaching {
3939
"_JNIBridge_\(typeName.fullFlatName)"
4040
}
4141

42-
static func cacheMemberName(for enumCase: ImportedEnumCase) -> String {
42+
static func cacheMemberName(for enumCase: ExtractedEnumCase) -> String {
4343
"\(enumCase.enumType.nominalTypeDecl.name.firstCharacterLowercased)\(enumCase.name.firstCharacterUppercased)Cache"
4444
}
4545

Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+InterfaceWrapperGeneration.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import SwiftSyntax
2121
extension JNISwift2JavaGenerator {
2222

2323
func generateInterfaceWrappers(
24-
_ types: [ImportedNominalType]
25-
) -> [ImportedNominalType: JavaInterfaceSwiftWrapper] {
26-
var wrappers = [ImportedNominalType: JavaInterfaceSwiftWrapper]()
24+
_ types: [ExtractedNominalType]
25+
) -> [ExtractedNominalType: JavaInterfaceSwiftWrapper] {
26+
var wrappers = [ExtractedNominalType: JavaInterfaceSwiftWrapper]()
2727

2828
for type in types where type.swiftNominal.kind == .protocol {
2929
// Skip protocols that have a known representative concrete type (e.g. DataProtocol).
@@ -51,7 +51,7 @@ extension JNISwift2JavaGenerator {
5151
let protocolType: SwiftNominalType
5252
let functions: [Function]
5353
let variables: [Variable]
54-
let importedType: ImportedNominalType
54+
let importedType: ExtractedNominalType
5555

5656
var wrapperName: String {
5757
protocolType.nominalTypeDecl.javaInterfaceSwiftProtocolWrapperName
@@ -102,7 +102,7 @@ extension JNISwift2JavaGenerator {
102102
}
103103

104104
struct JavaInterfaceProtocolWrapperGenerator {
105-
func generate(for type: ImportedNominalType) throws -> JavaInterfaceSwiftWrapper {
105+
func generate(for type: ExtractedNominalType) throws -> JavaInterfaceSwiftWrapper {
106106
if !type.initializers.isEmpty
107107
|| type.methods.contains(where: \.isStatic)
108108
|| type.variables.contains(where: \.isStatic)
@@ -164,7 +164,7 @@ extension JNISwift2JavaGenerator {
164164
)
165165
}
166166

167-
private func translate(function: ImportedFunc) throws -> JavaInterfaceSwiftWrapper.Function {
167+
private func translate(function: ExtractedFunc) throws -> JavaInterfaceSwiftWrapper.Function {
168168
let parameters = try function.functionSignature.parameters.map {
169169
try self.translateParameter($0)
170170
}
@@ -181,8 +181,8 @@ extension JNISwift2JavaGenerator {
181181
}
182182

183183
private func translateVariable(
184-
getter: ImportedFunc,
185-
setter: ImportedFunc?
184+
getter: ExtractedFunc,
185+
setter: ExtractedFunc?
186186
) throws -> JavaInterfaceSwiftWrapper.Variable {
187187
try JavaInterfaceSwiftWrapper.Variable(
188188
swiftDecl: getter.swiftDecl, // they should be the same

0 commit comments

Comments
 (0)