[K/N] Support Enum entries in objc export

^KT-53653
This commit is contained in:
Pavel Kunyavskiy
2023-02-21 14:10:16 +01:00
committed by Space Team
parent b4bd847345
commit b306ed53aa
12 changed files with 205 additions and 19 deletions
@@ -5676,6 +5676,7 @@ Task objcExportTest(
}
def libraryName = frameworkName + "Library"
def noEnumEntriesLibraryName = frameworkName + "NoEnumEntriesLibrary"
konanArtifacts {
library(libraryName, targets: [target.name]) {
srcDir "objcexport/library"
@@ -5687,13 +5688,23 @@ Task objcExportTest(
extraOpts "-Xshort-module-name=MyLibrary"
extraOpts "-module-name", "org.jetbrains.kotlin.native.test-library"
}
library(noEnumEntriesLibraryName, targets: [target.name]) {
srcDir "objcexport/noEnumEntries"
artifactName "test-no-enum-entries-$libraryName"
delegate.getByTarget(target.name).configure{
UtilsKt.dependsOnDist(it)
}
extraOpts "-Xshort-module-name=NoEnumEntriesLibrary"
extraOpts "-module-name", "org.jetbrains.kotlin.native.test-no-enum-entries-library"
extraOpts "-XXLanguage:-EnumEntries"
}
}
codesign = !isStaticFramework
framework(frameworkName) {
enabled = !isK2(project) // KT-56182
sources = ['objcexport']
libraries = [libraryName]
libraries = [libraryName, noEnumEntriesLibraryName]
artifact = 'Kt'
bitcode = !isStaticFramework
isStatic = isStaticFramework
@@ -5703,6 +5714,7 @@ Task objcExportTest(
opts += [
"-Xexport-kdoc",
"-Xbinary=bundleId=foo.bar",
"-Xexport-library=test-no-enum-entries-${libraryName}.klib"
]
opts += frameworkOpts
}
@@ -5773,6 +5785,7 @@ if (isAppleTarget(project)) {
false
)
frameworkTest('testValuesGenericsFramework') {
framework('ValuesGenerics') {
sources = ['objcexport/values.kt', 'framework/values_generics']
@@ -1,16 +1,23 @@
package enumValues
import noEnumEntries.*
enum class EnumLeftRightUpDown {
LEFT, RIGHT, UP, DOWN
}
enum class EnumOneTwoThreeValues {
ONE, TWO, THREE, VALUES
ONE, TWO, THREE, VALUES, ENTRIES
}
enum class EnumValuesValues_ {
VALUES, VALUES_
VALUES, VALUES_, ENTRIES, ENTRIES_
}
enum class EmptyEnum {
}
fun dceAvoidance() : NoEnumEntriesEnum {
return NoEnumEntriesEnum.ONE
}
@@ -14,27 +14,93 @@ private func testEnumValues() throws {
private func testEnumValuesMangled() throws {
let values = EnumOneTwoThreeValues.values_()
try assertEquals(actual: values.size, expected: 4)
try assertEquals(actual: values.size, expected: 5)
try assertSame(actual: values.get(index: 0) as AnyObject, expected: EnumOneTwoThreeValues.one)
try assertSame(actual: values.get(index: 1) as AnyObject, expected: EnumOneTwoThreeValues.two)
try assertSame(actual: values.get(index: 2) as AnyObject, expected: EnumOneTwoThreeValues.three)
try assertSame(actual: values.get(index: 3) as AnyObject, expected: EnumOneTwoThreeValues.values)
try assertSame(actual: values.get(index: 4) as AnyObject, expected: EnumOneTwoThreeValues.entries)
}
private func testEnumValuesMangledTwice() throws {
let values = EnumValuesValues_.values__()
try assertEquals(actual: values.size, expected: 2)
try assertEquals(actual: values.size, expected: 4)
try assertSame(actual: values.get(index: 0) as AnyObject, expected: EnumValuesValues_.values)
try assertSame(actual: values.get(index: 1) as AnyObject, expected: EnumValuesValues_.values_)
try assertSame(actual: values.get(index: 2) as AnyObject, expected: EnumValuesValues_.entries)
try assertSame(actual: values.get(index: 3) as AnyObject, expected: EnumValuesValues_.entries_)
}
private func testEnumValuesEmpty() throws {
try assertEquals(actual: EmptyEnum.values().size, expected: 0)
}
extension NSObject {
// convert to dictionary
static func toDictionary(from classType: AnyClass) -> [String: Any] {
var propertiesCount : CUnsignedInt = 0
let propertiesInAClass = class_copyMethodList(classType, &propertiesCount)
var propertiesDictionary = [String:Any]()
for i in 0 ..< Int(propertiesCount) {
if let property = propertiesInAClass?[i],
let strKey = NSString(utf8String: sel_getName(method_getName(property))) as String? {
propertiesDictionary[strKey] = value(forKey: strKey)
}
}
return propertiesDictionary
}
}
private func testNoEnumEntries() throws {
try assertTrue(class_respondsToSelector(object_getClass(EnumLeftRightUpDown.self), NSSelectorFromString("entries")));
try assertFalse(class_respondsToSelector(object_getClass(NoEnumEntriesEnum.self), NSSelectorFromString("entries")));
}
private func testEnumEntries() throws {
let entries = EnumLeftRightUpDown.entries
try assertEquals(actual: entries.count, expected: 4)
try assertSame(actual: entries[0] as AnyObject, expected: EnumLeftRightUpDown.left)
try assertSame(actual: entries[1] as AnyObject, expected: EnumLeftRightUpDown.right)
try assertSame(actual: entries[2] as AnyObject, expected: EnumLeftRightUpDown.up)
try assertSame(actual: entries[3] as AnyObject, expected: EnumLeftRightUpDown.down)
}
private func testEnumEntriesMangled() throws {
let entries = EnumOneTwoThreeValues.entries_
try assertEquals(actual: entries.count, expected: 5)
try assertSame(actual: entries[0] as AnyObject, expected: EnumOneTwoThreeValues.one)
try assertSame(actual: entries[1] as AnyObject, expected: EnumOneTwoThreeValues.two)
try assertSame(actual: entries[2] as AnyObject, expected: EnumOneTwoThreeValues.three)
try assertSame(actual: entries[3] as AnyObject, expected: EnumOneTwoThreeValues.values)
try assertSame(actual: entries[4] as AnyObject, expected: EnumOneTwoThreeValues.entries)
}
private func testEnumEntriesMangledTwice() throws {
let entries = EnumValuesValues_.entries__
try assertEquals(actual: entries.count, expected: 4)
try assertSame(actual: entries[0] as AnyObject, expected: EnumValuesValues_.values)
try assertSame(actual: entries[1] as AnyObject, expected: EnumValuesValues_.values_)
try assertSame(actual: entries[2] as AnyObject, expected: EnumValuesValues_.entries)
try assertSame(actual: entries[3] as AnyObject, expected: EnumValuesValues_.entries_)
}
private func testEnumEntriesEmpty() throws {
try assertEquals(actual: EmptyEnum.entries.count, expected: 0)
}
class EnumValuesTests : SimpleTestProvider {
override init() {
super.init()
@@ -43,5 +109,10 @@ class EnumValuesTests : SimpleTestProvider {
test("TestEnumValuesMangled", testEnumValuesMangled)
test("TestEnumValuesMangledTwice", testEnumValuesMangledTwice)
test("TestEnumValuesEmpty", testEnumValuesEmpty)
test("TestNoEnumEntries", testNoEnumEntries)
test("TestEnumEntries", testEnumEntries)
test("TestEnumEntriesMangled", testEnumEntriesMangled)
test("TestEnumEntriesMangledTwice", testEnumEntriesMangledTwice)
test("TestEnumEntriesEmpty", testEnumEntriesEmpty)
}
}
@@ -481,6 +481,7 @@ __attribute__((swift_name("EnumLeftRightUpDown")))
@property (class, readonly) KtEnumLeftRightUpDown *up __attribute__((swift_name("up")));
@property (class, readonly) KtEnumLeftRightUpDown *down __attribute__((swift_name("down")));
+ (KtKotlinArray<KtEnumLeftRightUpDown *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumLeftRightUpDown *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -493,7 +494,9 @@ __attribute__((swift_name("EnumOneTwoThreeValues")))
@property (class, readonly) KtEnumOneTwoThreeValues *two __attribute__((swift_name("two")));
@property (class, readonly) KtEnumOneTwoThreeValues *three __attribute__((swift_name("three")));
@property (class, readonly) KtEnumOneTwoThreeValues *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumOneTwoThreeValues *entries __attribute__((swift_name("entries")));
+ (KtKotlinArray<KtEnumOneTwoThreeValues *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumOneTwoThreeValues *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -504,7 +507,10 @@ __attribute__((swift_name("EnumValuesValues_")))
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
@property (class, readonly) KtEnumValuesValues_ *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumValuesValues_ *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumValuesValues_ *entries __attribute__((swift_name("entries")));
@property (class, readonly) KtEnumValuesValues_ *entries __attribute__((swift_name("entries")));
+ (KtKotlinArray<KtEnumValuesValues_ *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumValuesValues_ *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -514,6 +520,13 @@ __attribute__((swift_name("EmptyEnum")))
+ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+ (KtKotlinArray<KtEmptyEnum *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEmptyEnum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("EnumValuesKt")))
@interface KtEnumValuesKt : KtBase
+ (KtNoEnumEntriesEnum *)dceAvoidance __attribute__((swift_name("dceAvoidance()")));
@end
__attribute__((swift_name("FunInterface")))
@@ -1030,6 +1043,7 @@ __attribute__((swift_name("KT43780Enum")))
@property (class, readonly) KtKT43780Enum *otherEntry __attribute__((swift_name("otherEntry")));
@property (class, readonly) KtKT43780Enum *companion __attribute__((swift_name("companion")));
+ (KtKotlinArray<KtKT43780Enum *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtKT43780Enum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -1308,6 +1322,7 @@ __attribute__((swift_name("NoAutoreleaseEnum")))
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
@property (class, readonly) KtNoAutoreleaseEnum *entry __attribute__((swift_name("entry")));
+ (KtKotlinArray<KtNoAutoreleaseEnum *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtNoAutoreleaseEnum *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t x __attribute__((swift_name("x")));
@end
@@ -1443,6 +1458,7 @@ __attribute__((swift_name("ObjCNameSwiftEnum")))
@property (class, readonly) KtObjCNameObjCEnum *objcTwo __attribute__((swift_name("companion")));
@property (class, readonly) KtObjCNameObjCEnum *objcThree __attribute__((swift_name("swiftThree")));
+ (KtKotlinArray<KtObjCNameObjCEnum *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtObjCNameObjCEnum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -1808,6 +1824,7 @@ __attribute__((swift_name("Enumeration")))
@property (class, readonly) KtEnumeration *year __attribute__((swift_name("year")));
@property (class, readonly) KtEnumeration *temperature __attribute__((swift_name("temperature")));
+ (KtKotlinArray<KtEnumeration *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumeration *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t enumValue __attribute__((swift_name("enumValue")));
@end
@@ -2502,6 +2519,7 @@ __attribute__((swift_name("TestInvalidIdentifiers.E")))
@property (class, readonly) KtTestInvalidIdentifiersE *__ __attribute__((swift_name("__")));
@property (class, readonly) KtTestInvalidIdentifiersE *__ __attribute__((swift_name("__")));
+ (KtKotlinArray<KtTestInvalidIdentifiersE *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtTestInvalidIdentifiersE *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t value __attribute__((swift_name("value")));
@end
@@ -481,6 +481,7 @@ __attribute__((swift_name("EnumLeftRightUpDown")))
@property (class, readonly) KtEnumLeftRightUpDown *up __attribute__((swift_name("up")));
@property (class, readonly) KtEnumLeftRightUpDown *down __attribute__((swift_name("down")));
+ (KtKotlinArray<KtEnumLeftRightUpDown *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumLeftRightUpDown *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -493,7 +494,9 @@ __attribute__((swift_name("EnumOneTwoThreeValues")))
@property (class, readonly) KtEnumOneTwoThreeValues *two __attribute__((swift_name("two")));
@property (class, readonly) KtEnumOneTwoThreeValues *three __attribute__((swift_name("three")));
@property (class, readonly) KtEnumOneTwoThreeValues *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumOneTwoThreeValues *entries __attribute__((swift_name("entries")));
+ (KtKotlinArray<KtEnumOneTwoThreeValues *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumOneTwoThreeValues *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -504,7 +507,10 @@ __attribute__((swift_name("EnumValuesValues_")))
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
@property (class, readonly) KtEnumValuesValues_ *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumValuesValues_ *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumValuesValues_ *entries __attribute__((swift_name("entries")));
@property (class, readonly) KtEnumValuesValues_ *entries __attribute__((swift_name("entries")));
+ (KtKotlinArray<KtEnumValuesValues_ *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumValuesValues_ *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -514,6 +520,13 @@ __attribute__((swift_name("EmptyEnum")))
+ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+ (KtKotlinArray<KtEmptyEnum *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEmptyEnum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("EnumValuesKt")))
@interface KtEnumValuesKt : KtBase
+ (KtNoEnumEntriesEnum *)dceAvoidance __attribute__((swift_name("dceAvoidance()")));
@end
__attribute__((swift_name("FunInterface")))
@@ -1030,6 +1043,7 @@ __attribute__((swift_name("KT43780Enum")))
@property (class, readonly) KtKT43780Enum *otherEntry __attribute__((swift_name("otherEntry")));
@property (class, readonly) KtKT43780Enum *companion __attribute__((swift_name("companion")));
+ (KtKotlinArray<KtKT43780Enum *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtKT43780Enum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -1308,6 +1322,7 @@ __attribute__((swift_name("NoAutoreleaseEnum")))
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
@property (class, readonly) KtNoAutoreleaseEnum *entry __attribute__((swift_name("entry")));
+ (KtKotlinArray<KtNoAutoreleaseEnum *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtNoAutoreleaseEnum *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t x __attribute__((swift_name("x")));
@end
@@ -1443,6 +1458,7 @@ __attribute__((swift_name("ObjCNameSwiftEnum")))
@property (class, readonly) KtObjCNameObjCEnum *objcTwo __attribute__((swift_name("companion")));
@property (class, readonly) KtObjCNameObjCEnum *objcThree __attribute__((swift_name("swiftThree")));
+ (KtKotlinArray<KtObjCNameObjCEnum *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtObjCNameObjCEnum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -1808,6 +1824,7 @@ __attribute__((swift_name("Enumeration")))
@property (class, readonly) KtEnumeration *year __attribute__((swift_name("year")));
@property (class, readonly) KtEnumeration *temperature __attribute__((swift_name("temperature")));
+ (KtKotlinArray<KtEnumeration *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumeration *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t enumValue __attribute__((swift_name("enumValue")));
@end
@@ -2502,6 +2519,7 @@ __attribute__((swift_name("TestInvalidIdentifiers.E")))
@property (class, readonly) KtTestInvalidIdentifiersE *__ __attribute__((swift_name("__")));
@property (class, readonly) KtTestInvalidIdentifiersE *__ __attribute__((swift_name("__")));
+ (KtKotlinArray<KtTestInvalidIdentifiersE *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtTestInvalidIdentifiersE *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t value __attribute__((swift_name("value")));
@end
@@ -481,6 +481,7 @@ __attribute__((swift_name("EnumLeftRightUpDown")))
@property (class, readonly) KtEnumLeftRightUpDown *up __attribute__((swift_name("up")));
@property (class, readonly) KtEnumLeftRightUpDown *down __attribute__((swift_name("down")));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumLeftRightUpDown *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -493,7 +494,9 @@ __attribute__((swift_name("EnumOneTwoThreeValues")))
@property (class, readonly) KtEnumOneTwoThreeValues *two __attribute__((swift_name("two")));
@property (class, readonly) KtEnumOneTwoThreeValues *three __attribute__((swift_name("three")));
@property (class, readonly) KtEnumOneTwoThreeValues *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumOneTwoThreeValues *entries __attribute__((swift_name("entries")));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumOneTwoThreeValues *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -504,7 +507,10 @@ __attribute__((swift_name("EnumValuesValues_")))
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
@property (class, readonly) KtEnumValuesValues_ *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumValuesValues_ *values __attribute__((swift_name("values")));
@property (class, readonly) KtEnumValuesValues_ *entries __attribute__((swift_name("entries")));
@property (class, readonly) KtEnumValuesValues_ *entries __attribute__((swift_name("entries")));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumValuesValues_ *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -514,6 +520,13 @@ __attribute__((swift_name("EmptyEnum")))
+ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEmptyEnum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("EnumValuesKt")))
@interface KtEnumValuesKt : KtBase
+ (KtNoEnumEntriesEnum *)dceAvoidance __attribute__((swift_name("dceAvoidance()")));
@end
__attribute__((swift_name("FunInterface")))
@@ -1030,6 +1043,7 @@ __attribute__((swift_name("KT43780Enum")))
@property (class, readonly) KtKT43780Enum *otherEntry __attribute__((swift_name("otherEntry")));
@property (class, readonly) KtKT43780Enum *companion __attribute__((swift_name("companion")));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtKT43780Enum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -1308,6 +1322,7 @@ __attribute__((swift_name("NoAutoreleaseEnum")))
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
@property (class, readonly) KtNoAutoreleaseEnum *entry __attribute__((swift_name("entry")));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtNoAutoreleaseEnum *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t x __attribute__((swift_name("x")));
@end
@@ -1443,6 +1458,7 @@ __attribute__((swift_name("ObjCNameSwiftEnum")))
@property (class, readonly) KtObjCNameObjCEnum *objcTwo __attribute__((swift_name("companion")));
@property (class, readonly) KtObjCNameObjCEnum *objcThree __attribute__((swift_name("swiftThree")));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtObjCNameObjCEnum *> *entries __attribute__((swift_name("entries")));
@end
__attribute__((objc_subclassing_restricted))
@@ -1808,6 +1824,7 @@ __attribute__((swift_name("Enumeration")))
@property (class, readonly) KtEnumeration *year __attribute__((swift_name("year")));
@property (class, readonly) KtEnumeration *temperature __attribute__((swift_name("temperature")));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtEnumeration *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t enumValue __attribute__((swift_name("enumValue")));
@end
@@ -2502,6 +2519,7 @@ __attribute__((swift_name("TestInvalidIdentifiers.E")))
@property (class, readonly) KtTestInvalidIdentifiersE *__ __attribute__((swift_name("__")));
@property (class, readonly) KtTestInvalidIdentifiersE *__ __attribute__((swift_name("__")));
+ (KtKotlinArray *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<KtTestInvalidIdentifiersE *> *entries __attribute__((swift_name("entries")));
@property (readonly) int32_t value __attribute__((swift_name("value")));
@end
@@ -0,0 +1,12 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package noEnumEntries
enum class NoEnumEntriesEnum {
ONE,
TWO,
THREE
}