Enum classes have private constructor visibility from front-end point of view.
Protected visibility hardcoded in jvm backend.
This commit is contained in:
@@ -1023,9 +1023,15 @@ public class JetTypeMapper {
|
||||
ClassKind kind = ((ClassDescriptor) containingDeclaration).getKind();
|
||||
if (kind == ClassKind.OBJECT) {
|
||||
return ACC_PUBLIC;
|
||||
} else if (kind == ClassKind.ENUM_ENTRY) {
|
||||
}
|
||||
else if (kind == ClassKind.ENUM_ENTRY) {
|
||||
return ACC_PACKAGE_PRIVATE;
|
||||
}
|
||||
else if (kind == ClassKind.ENUM_CLASS) {
|
||||
//TODO: should be ACC_PRIVATE
|
||||
// see http://youtrack.jetbrains.com/issue/KT-2680
|
||||
return ACC_PROTECTED;
|
||||
}
|
||||
}
|
||||
if (containingDeclaration instanceof NamespaceDescriptor) {
|
||||
return ACC_PUBLIC;
|
||||
|
||||
@@ -368,9 +368,7 @@ public class DescriptorUtils {
|
||||
public static Visibility getDefaultConstructorVisibility(@NotNull ClassDescriptor classDescriptor) {
|
||||
ClassKind classKind = classDescriptor.getKind();
|
||||
if (classKind == ClassKind.ENUM_CLASS) {
|
||||
//TODO: should be PRIVATE
|
||||
// see http://youtrack.jetbrains.com/issue/KT-2680
|
||||
return Visibilities.PROTECTED;
|
||||
return Visibilities.PRIVATE;
|
||||
}
|
||||
if (classKind.isObject()) {
|
||||
return Visibilities.PRIVATE;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace test
|
||||
|
||||
internal final enum class test.Test : jet.Enum<test.Test> {
|
||||
protected final /*constructor*/ fun <init>(/*0*/ a: jet.Int): test.Test
|
||||
private final /*constructor*/ fun <init>(/*0*/ a: jet.Int): test.Test
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
internal final class object test.Test.<class-object-for-Test> {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace test
|
||||
|
||||
internal final enum class test.In : jet.Enum<test.In> {
|
||||
protected final /*constructor*/ fun <init>(/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.In
|
||||
private final /*constructor*/ fun <init>(/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.In
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
internal final class object test.In.<class-object-for-In> {
|
||||
@@ -12,7 +12,7 @@ internal final enum class test.In : jet.Enum<test.In> {
|
||||
}
|
||||
}
|
||||
private final enum class test.Pr : jet.Enum<test.Pr> {
|
||||
protected final /*constructor*/ fun <init>(/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.Pr
|
||||
private final /*constructor*/ fun <init>(/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.Pr
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
private final class object test.Pr.<class-object-for-Pr> {
|
||||
@@ -23,7 +23,7 @@ private final enum class test.Pr : jet.Enum<test.Pr> {
|
||||
}
|
||||
}
|
||||
public final enum class test.Pu : jet.Enum<test.Pu> {
|
||||
protected final /*constructor*/ fun <init>(/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.Pu
|
||||
private final /*constructor*/ fun <init>(/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.Pu
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
public final class object test.Pu.<class-object-for-Pu> {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace test
|
||||
|
||||
internal final enum class test.In : jet.Enum<test.In> {
|
||||
protected final /*constructor*/ fun <init>(): test.In
|
||||
private final /*constructor*/ fun <init>(): test.In
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
internal final class object test.In.<class-object-for-In> {
|
||||
@@ -17,7 +17,7 @@ internal final enum class test.In : jet.Enum<test.In> {
|
||||
}
|
||||
}
|
||||
private final enum class test.Pr : jet.Enum<test.Pr> {
|
||||
protected final /*constructor*/ fun <init>(): test.Pr
|
||||
private final /*constructor*/ fun <init>(): test.Pr
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
private final class object test.Pr.<class-object-for-Pr> {
|
||||
@@ -33,7 +33,7 @@ private final enum class test.Pr : jet.Enum<test.Pr> {
|
||||
}
|
||||
}
|
||||
public final enum class test.Pu : jet.Enum<test.Pu> {
|
||||
protected final /*constructor*/ fun <init>(): test.Pu
|
||||
private final /*constructor*/ fun <init>(): test.Pu
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
public final class object test.Pu.<class-object-for-Pu> {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace test
|
||||
|
||||
internal final enum class test.MyEnum : jet.Enum<test.MyEnum> {
|
||||
protected final /*constructor*/ fun <init>(/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.MyEnum
|
||||
private final /*constructor*/ fun <init>(/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.MyEnum
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
internal final class object test.MyEnum.<class-object-for-MyEnum> {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace test
|
||||
|
||||
internal final enum class test.MyEnum : jet.Enum<test.MyEnum> {
|
||||
protected final /*constructor*/ fun <init>(): test.MyEnum
|
||||
private final /*constructor*/ fun <init>(): test.MyEnum
|
||||
public final override /*1*/ fun name(): jet.String
|
||||
public final override /*1*/ fun ordinal(): jet.Int
|
||||
internal final class object test.MyEnum.<class-object-for-MyEnum> {
|
||||
|
||||
Reference in New Issue
Block a user