Skip to content

Commit 2a7d841

Browse files
committed
Java2Swift: Drop the "as(superclass)" function when generating classes
We don't need this function when generating classes, because we'll already get the subtype conversion for free.
1 parent 819dd27 commit 2a7d841

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

Sources/JavaKitMacros/JavaClassMacro.swift

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,15 @@ extension JavaClassMacro: MemberMacro {
125125
"""
126126
)
127127

128-
members.append("""
129-
/// Casting to ``\(raw: superclass)`` will never be nil because ``\(raw: swiftName)`` extends it.
130-
public func `as`(_: \(raw: superclass).Type) -> \(raw: superclass) {
131-
return \(raw: superclass)(javaHolder: javaHolder)
132-
}
133-
"""
134-
)
128+
if !isSwiftClass {
129+
members.append("""
130+
/// Casting to ``\(raw: superclass)`` will never be nil because ``\(raw: swiftName)`` extends it.
131+
public func `as`(_: \(raw: superclass).Type) -> \(raw: superclass) {
132+
return \(raw: superclass)(javaHolder: javaHolder)
133+
}
134+
"""
135+
)
136+
}
135137

136138
return members
137139
}

Tests/JavaKitMacroTests/JavaClassMacroTests.swift

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -193,11 +193,6 @@ class JavaKitMacroTests: XCTestCase {
193193
public required init(javaHolder: JavaObjectHolder) {
194194
super.init(javaHolder: javaHolder)
195195
}
196-
197-
/// Casting to ``OtherJavaType`` will never be nil because ``HelloWorld`` extends it.
198-
public func `as`(_: OtherJavaType.Type) -> OtherJavaType {
199-
return OtherJavaType(javaHolder: javaHolder)
200-
}
201196
}
202197
""",
203198
macros: Self.javaKitMacros
@@ -241,11 +236,6 @@ class JavaKitMacroTests: XCTestCase {
241236
public required init(javaHolder: JavaObjectHolder) {
242237
self.javaHolder = javaHolder
243238
}
244-
245-
/// Casting to ``JavaObject`` will never be nil because ``JavaObject`` extends it.
246-
public func `as`(_: JavaObject.Type) -> JavaObject {
247-
return JavaObject(javaHolder: javaHolder)
248-
}
249239
}
250240
""",
251241
macros: Self.javaKitMacros

0 commit comments

Comments
 (0)