Native: add an option to disable exported Swift member name mangling

This commit supports `objcExportDisableSwiftMemberNameMangling=true`
binary option, which disables mangling for Swift names in generated
Objective-C headers, but keeps mangling for Objective-C names.

Enabling it might cause issues in some cases with actual clashes.

^KT-53638 Fixed
This commit is contained in:
Svyatoslav Scherbina
2023-01-11 08:57:12 +00:00
committed by Space Team
parent 1b016d0bce
commit e2640b4afa
14 changed files with 243 additions and 10 deletions
@@ -1499,6 +1499,33 @@ __attribute__((swift_name("Person.WorkerContractor")))
@property (readonly) int32_t id __attribute__((swift_name("id")));
@end
__attribute__((swift_name("SwiftNameManglingI1")))
@protocol KtSwiftNameManglingI1
@required
- (int32_t)clashingMethod __attribute__((swift_name("clashingMethod()")));
- (int32_t)clashingMethodWithObjCNameInI1 __attribute__((swift_name("swiftClashingMethodWithObjCNameInI1()")));
- (int32_t)swiftClashingMethodWithObjCNameInI2 __attribute__((swift_name("swiftClashingMethodWithObjCNameInI2()")));
- (int32_t)clashingMethodWithObjCNameInBoth __attribute__((swift_name("swiftClashingMethodWithObjCNameInBoth()")));
@property (readonly) int32_t clashingProperty __attribute__((swift_name("clashingProperty")));
@end
__attribute__((swift_name("SwiftNameManglingI2")))
@protocol KtSwiftNameManglingI2
@required
- (id)clashingMethod __attribute__((swift_name("clashingMethod()")));
- (id)swiftClashingMethodWithObjCNameInI1 __attribute__((swift_name("swiftClashingMethodWithObjCNameInI1()")));
- (id)clashingMethodWithObjCNameInI2 __attribute__((swift_name("swiftClashingMethodWithObjCNameInI2()")));
- (id)clashingMethodWithObjCNameInBoth __attribute__((swift_name("swiftClashingMethodWithObjCNameInBoth()")));
@property (readonly) id clashingProperty __attribute__((swift_name("clashingProperty")));
@end
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("SwiftNameManglingKt")))
@interface KtSwiftNameManglingKt : KtBase
+ (id<KtSwiftNameManglingI1>)i1 __attribute__((swift_name("i1()")));
+ (id<KtSwiftNameManglingI2>)i2 __attribute__((swift_name("i2()")));
@end
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("ThrowableAsError")))
@interface KtThrowableAsError : KtKotlinThrowable