ObjCExport: fix replacing Kotlin class methods by Swift extensions

^KT-49937 Fixed
This commit is contained in:
Svyatoslav Scherbina
2022-01-26 18:23:04 +03:00
committed by Space
parent 199edd59f8
commit 4cd60090e0
6 changed files with 69 additions and 4 deletions
@@ -958,6 +958,14 @@ __attribute__((swift_name("Kt46431Kt")))
+ (id<KtHost>)createAbstractHost __attribute__((swift_name("createAbstractHost()")));
@end;
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("KT49937")))
@interface KtKT49937 : KtBase
- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
+ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
- (NSString *)description __attribute__((swift_name("description()")));
@end;
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("LibraryKt")))
@interface KtLibraryKt : KtBase
@@ -900,6 +900,14 @@ __attribute__((swift_name("Kt46431Kt")))
+ (id<KtHost>)createAbstractHost __attribute__((swift_name("createAbstractHost()")));
@end;
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("KT49937")))
@interface KtKT49937 : KtBase
- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
+ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
- (NSString *)description __attribute__((swift_name("description()")));
@end;
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("LibraryKt")))
@interface KtLibraryKt : KtBase
@@ -900,6 +900,14 @@ __attribute__((swift_name("Kt46431Kt")))
+ (id<KtHost>)createAbstractHost __attribute__((swift_name("createAbstractHost()")));
@end;
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("KT49937")))
@interface KtKT49937 : KtBase
- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
+ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
- (NSString *)description __attribute__((swift_name("description()")));
@end;
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("LibraryKt")))
@interface KtLibraryKt : KtBase
@@ -0,0 +1,14 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the LICENSE file.
*/
package kt49937
// Based on https://youtrack.jetbrains.com/issue/KT-49937
final class KT49937 {
override fun toString(): String {
return "KT49937"
}
}
@@ -0,0 +1,27 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the LICENSE file.
*/
import Kt
// Based on https://youtrack.jetbrains.com/issue/KT-49937.
public extension KT49937 {
override var description: String { "KT49937Swift" }
}
private func test1() throws {
try assertEquals(actual: KT49937().description, expected: "KT49937Swift")
let nsObject: NSObject = KT49937()
try assertEquals(actual: nsObject.description, expected: "KT49937Swift")
}
class Kt49937Tests : SimpleTestProvider {
override init() {
super.init()
test("Test1", test1)
}
}