Skip to content

Commit 6040366

Browse files
j2objc-copybaracopybara-github
authored andcommitted
Made swift-enums defaulted to on
PiperOrigin-RevId: 605700160
1 parent 074f69d commit 6040366

File tree

6 files changed

+37
-11
lines changed

6 files changed

+37
-11
lines changed

doc/man/j2objc.1

+2-2
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,8 @@ Do not generate metadata needed for Java reflection.
155155
Generate code that facilitates Swift importing (equivalent to
156156
\-\-class\-properties \-\-nullability \-\-swift-enum).
157157
.TP
158-
.BI \-\-swift-enums
159-
Generate Swift-like enum case names.
158+
.BI \-\-no-swift-enums
159+
Disables generation of Swift-like enum case names.
160160
.TP
161161
.BI \-\-system
162162
Option forwarded directly to the Java compiler (see javac help for details).

translator/src/main/java/com/google/devtools/j2objc/Options.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class Options {
9090
private String processors = null;
9191
private boolean disallowInheritedConstructors = true;
9292
private boolean nullability = false;
93-
private boolean swiftEnums = false;
93+
private boolean swiftEnums = true;
9494
private boolean nullMarked = false;
9595
private TimingLevel timingLevel = TimingLevel.NONE;
9696
private boolean dumpAST = false;

translator/src/main/resources/com/google/devtools/j2objc/J2ObjC.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ Other options:\n\
9393
--strip-reflection Do not generate metadata needed for Java reflection.\n\
9494
--swift-friendly Generate code that facilitates Swift importing (equivalent to\
9595
\n --class-properties --nullability --swift-enum).\n\
96-
--swift-enums Generate Swift-like enum case names.\n\
96+
--no-swift-enums Disables generation of Swift-like enum case names.\n\
9797
--system. Option forwarded directly to the Java compiler\
9898
\n (see javac help for details).\n\
9999
-t, --timing-info Print time spent in translation steps.\n\

translator/src/test/java/com/google/devtools/j2objc/gen/ObjectiveCHeaderGeneratorTest.java

+28-4
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,31 @@ public void testEnum() throws IOException {
488488
String translation = translateSourceFile(
489489
"public enum Color { RED, WHITE, BLUE }",
490490
"Color", "Color.h");
491-
assertTranslatedLines(translation,
491+
assertTranslatedLines(
492+
translation,
493+
"typedef NS_ENUM(jint, Color_Enum) {",
494+
" Color_Enum_RED NS_SWIFT_NAME(red) = 0,",
495+
" Color_Enum_WHITE NS_SWIFT_NAME(white) = 1,",
496+
" Color_Enum_BLUE NS_SWIFT_NAME(blue) = 2,",
497+
"};");
498+
assertTranslation(translation, "@interface Color : JavaLangEnum");
499+
assertTranslation(translation, "+ (IOSObjectArray *)values;");
500+
assertTranslation(translation, "+ (Color *)valueOfWithNSString:(NSString *)name;");
501+
assertTranslation(translation, "FOUNDATION_EXPORT Color *Color_values_[];");
502+
assertTranslatedLines(
503+
translation, "inline Color *Color_get_RED(void);", "J2OBJC_ENUM_CONSTANT(Color, RED)");
504+
assertTranslatedLines(
505+
translation, "inline Color *Color_get_WHITE(void);", "J2OBJC_ENUM_CONSTANT(Color, WHITE)");
506+
assertTranslatedLines(
507+
translation, "inline Color *Color_get_BLUE(void);", "J2OBJC_ENUM_CONSTANT(Color, BLUE)");
508+
}
509+
510+
public void testEnumNoSwiftEnums() throws IOException {
511+
options.setSwiftEnums(false);
512+
String translation =
513+
translateSourceFile("public enum Color { RED, WHITE, BLUE }", "Color", "Color.h");
514+
assertTranslatedLines(
515+
translation,
492516
"typedef NS_ENUM(jint, Color_Enum) {",
493517
" Color_Enum_RED = 0,",
494518
" Color_Enum_WHITE = 1,",
@@ -519,9 +543,9 @@ public void testEnumIsImplicitlyNonnullWhenNullMarked() throws IOException {
519543
assertTranslatedLines(
520544
translation,
521545
"typedef NS_ENUM(jint, Color_Enum) {",
522-
" Color_Enum_RED = 0,",
523-
" Color_Enum_WHITE = 1,",
524-
" Color_Enum_BLUE = 2,",
546+
" Color_Enum_RED NS_SWIFT_NAME(red) = 0,",
547+
" Color_Enum_WHITE NS_SWIFT_NAME(white) = 1,",
548+
" Color_Enum_BLUE NS_SWIFT_NAME(blue) = 2,",
525549
"};");
526550
assertTranslation(translation, "FOUNDATION_EXPORT Color *_Nonnull Color_values_[];");
527551
assertTranslatedLines(

translator/src/test/java/com/google/devtools/j2objc/gen/TypeDeclarationGeneratorTest.java

+1
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ public void testEnumConstantAccessorMethodsAreImplicitlyNonnullWhenNullMarked()
208208
public void testEnumConstantClassProperties() throws IOException {
209209
options.setClassProperties(true);
210210
options.setNullability(true);
211+
options.setSwiftEnums(false);
211212
String source = "enum Test { ONE, TWO, EOF }"; // EOF is a reserved name.
212213
String translation = translateSourceFile(source, "Test", "Test.h");
213214
assertTranslation(

translator/src/test/java/com/google/devtools/j2objc/util/NameTableTest.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -272,10 +272,11 @@ public void testRenamePackageAnnotationEnum() throws IOException {
272272
+ "package foo.bar;", "foo/bar/package-info.java");
273273
addSourceFile("package foo.bar; public enum Test { FOO, BAR }", "foo/bar/Test.java");
274274
String translation = translateSourceFile("foo.bar.Test", "foo/bar/Test.h");
275-
assertTranslatedLines(translation,
275+
assertTranslatedLines(
276+
translation,
276277
"typedef NS_ENUM(jint, FBTest_Enum) {",
277-
" FBTest_Enum_FOO = 0,",
278-
" FBTest_Enum_BAR = 1,",
278+
" FBTest_Enum_FOO NS_SWIFT_NAME(foo) = 0,",
279+
" FBTest_Enum_BAR NS_SWIFT_NAME(bar) = 1,",
279280
"};");
280281
assertTranslation(translation, "@interface FBTest : JavaLangEnum");
281282
assertTranslation(translation, "FBTest_values(void);");

0 commit comments

Comments
 (0)