Skip to content

Commit 04e3193

Browse files
stefanhausteincopybara-github
authored andcommitted
BEGIN_PUBLIC
Add an "nsEnum" property with the same functionality as "enumValue" for j2objc transated java enums for kotlin compatibility. END_PUBLIC PiperOrigin-RevId: 845739259
1 parent 4257861 commit 04e3193

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

translator/src/main/java/com/google/devtools/j2objc/translate/EnumRewriter.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,13 @@ private void addExtraNativeDecls(EnumDeclaration node) {
351351
"- (%s)enumValue {\n" + " return (%s)[self ordinal];\n" + "}\n\n",
352352
nativeName, nativeName)));
353353

354+
node.addBodyDeclaration(
355+
NativeDeclaration.newInnerDeclaration(
356+
UnicodeUtils.format("@property(readonly) %s nsEnum%s;", nativeName, segmentName),
357+
UnicodeUtils.format(
358+
"- (%s)nsEnum {\n" + " return (%s)[self ordinal];\n" + "}\n\n",
359+
nativeName, nativeName)));
360+
354361
node.addBodyDeclaration(
355362
NativeDeclaration.newInnerDeclaration(
356363
UnicodeUtils.format("+ (%s *)fromNSEnum:(%s)value;\n", typeName, nativeName),
@@ -368,7 +375,7 @@ private void addExtraNativeDecls(EnumDeclaration node) {
368375
node.addBodyDeclaration(
369376
NativeDeclaration.newInnerDeclaration(
370377
UnicodeUtils.format(
371-
"- (%s)ordinal NS_SWIFT_UNAVAILABLE(\"Use .enumValue\")%s;\n",
378+
"- (%s)ordinal NS_SWIFT_UNAVAILABLE(\"Use .nsEnum\")%s;\n",
372379
ordinalName, segmentName),
373380
UnicodeUtils.format(
374381
"- (%s)ordinal {\n" + " return (%s)[super ordinal];\n" + "}\n\n",

translator/src/test/java/com/google/devtools/j2objc/translate/EnumRewriterTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public void testToNsEnumConversion() throws Exception {
5151
"- (Test_Enum)toNSEnum {",
5252
" return (Test_Enum)[self ordinal];",
5353
"}");
54+
assertTranslatedLines(
55+
translation, "- (Test_Enum)nsEnum {",
56+
" return (Test_Enum)[self ordinal];",
57+
"}");
5458
assertTranslatedLines(
5559
translation,
5660
"+ (Test *)fromNSEnum:(Test_Enum)nativeValue {",

0 commit comments

Comments
 (0)