KT-35897: change type for enum constructor for visibility

This commit is contained in:
PetelimovaNadezhda
2020-04-04 12:40:04 +03:00
committed by Ilya Kirillov
parent 32748ea741
commit 517de44d20
4 changed files with 32 additions and 1 deletions
@@ -26,7 +26,7 @@ class InternalDeclarationConversion(context: NewJ2kConverterContext) : Recursive
element.visibility = when {
containingClassKind == JKClass.ClassKind.INTERFACE || containingClassKind == JKClass.ClassKind.ANNOTATION ->
Visibility.PUBLIC
containingClassKind == JKClass.ClassKind.ENUM && element is JKKtPrimaryConstructor ->
containingClassKind == JKClass.ClassKind.ENUM && element is JKConstructor ->
Visibility.PRIVATE
element is JKClass && !element.isLocalClass() ->
Visibility.INTERNAL
@@ -0,0 +1,13 @@
public enum JavaEnum {
A("a"), B;
JavaEnum(String x) {
this.x = x;
}
JavaEnum() {
this.x = "default";
}
protected String x;
}
@@ -0,0 +1,13 @@
enum class JavaEnum {
A("a"), B;
constructor(x: String) {
this.x = x
}
constructor() {
x = "default"
}
protected var x: String
}
@@ -1864,6 +1864,11 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
runTest("nj2k/testData/newJ2k/enum/fieldsWithPrimaryPrivateConstructor.java");
}
@TestMetadata("implicitlyPrivateConstructorsEnum.java")
public void testImplicitlyPrivateConstructorsEnum() throws Exception {
runTest("nj2k/testData/newJ2k/enum/implicitlyPrivateConstructorsEnum.java");
}
@TestMetadata("internalEnum.java")
public void testInternalEnum() throws Exception {
runTest("nj2k/testData/newJ2k/enum/internalEnum.java");