diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index 1859bffe5d8..1fc09a18b73 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -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; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java index d3beae28e2c..401c15eb0c3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorUtils.java @@ -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; diff --git a/compiler/testData/lazyResolve/namespaceComparator/enum.txt b/compiler/testData/lazyResolve/namespaceComparator/enum.txt index 5513fdda682..4dda3a212c8 100644 --- a/compiler/testData/lazyResolve/namespaceComparator/enum.txt +++ b/compiler/testData/lazyResolve/namespaceComparator/enum.txt @@ -1,7 +1,7 @@ namespace test internal final enum class test.Test : jet.Enum { - protected final /*constructor*/ fun (/*0*/ a: jet.Int): test.Test + private final /*constructor*/ fun (/*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. { diff --git a/compiler/testData/loadKotlinCustom/enum/enumVisibilityBinary.txt b/compiler/testData/loadKotlinCustom/enum/enumVisibilityBinary.txt index 0191d7d4d95..5637ea7a24c 100644 --- a/compiler/testData/loadKotlinCustom/enum/enumVisibilityBinary.txt +++ b/compiler/testData/loadKotlinCustom/enum/enumVisibilityBinary.txt @@ -1,7 +1,7 @@ namespace test internal final enum class test.In : jet.Enum { - protected final /*constructor*/ fun (/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.In + private final /*constructor*/ fun (/*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. { @@ -12,7 +12,7 @@ internal final enum class test.In : jet.Enum { } } private final enum class test.Pr : jet.Enum { - protected final /*constructor*/ fun (/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.Pr + private final /*constructor*/ fun (/*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. { @@ -23,7 +23,7 @@ private final enum class test.Pr : jet.Enum { } } public final enum class test.Pu : jet.Enum { - protected final /*constructor*/ fun (/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.Pu + private final /*constructor*/ fun (/*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. { diff --git a/compiler/testData/loadKotlinCustom/enum/enumVisibilitySource.txt b/compiler/testData/loadKotlinCustom/enum/enumVisibilitySource.txt index 1c6da249deb..4f02bf08df8 100644 --- a/compiler/testData/loadKotlinCustom/enum/enumVisibilitySource.txt +++ b/compiler/testData/loadKotlinCustom/enum/enumVisibilitySource.txt @@ -1,7 +1,7 @@ namespace test internal final enum class test.In : jet.Enum { - protected final /*constructor*/ fun (): test.In + private final /*constructor*/ fun (): test.In public final override /*1*/ fun name(): jet.String public final override /*1*/ fun ordinal(): jet.Int internal final class object test.In. { @@ -17,7 +17,7 @@ internal final enum class test.In : jet.Enum { } } private final enum class test.Pr : jet.Enum { - protected final /*constructor*/ fun (): test.Pr + private final /*constructor*/ fun (): test.Pr public final override /*1*/ fun name(): jet.String public final override /*1*/ fun ordinal(): jet.Int private final class object test.Pr. { @@ -33,7 +33,7 @@ private final enum class test.Pr : jet.Enum { } } public final enum class test.Pu : jet.Enum { - protected final /*constructor*/ fun (): test.Pu + private final /*constructor*/ fun (): test.Pu public final override /*1*/ fun name(): jet.String public final override /*1*/ fun ordinal(): jet.Int public final class object test.Pu. { diff --git a/compiler/testData/loadKotlinCustom/enum/simpleEnumBinary.txt b/compiler/testData/loadKotlinCustom/enum/simpleEnumBinary.txt index e17dc8ae625..07f1cba4027 100644 --- a/compiler/testData/loadKotlinCustom/enum/simpleEnumBinary.txt +++ b/compiler/testData/loadKotlinCustom/enum/simpleEnumBinary.txt @@ -1,7 +1,7 @@ namespace test internal final enum class test.MyEnum : jet.Enum { - protected final /*constructor*/ fun (/*0*/ p0: jet.String?, /*1*/ p1: jet.Int): test.MyEnum + private final /*constructor*/ fun (/*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. { diff --git a/compiler/testData/loadKotlinCustom/enum/simpleEnumSource.txt b/compiler/testData/loadKotlinCustom/enum/simpleEnumSource.txt index 424bb8e5ad2..76081de6641 100644 --- a/compiler/testData/loadKotlinCustom/enum/simpleEnumSource.txt +++ b/compiler/testData/loadKotlinCustom/enum/simpleEnumSource.txt @@ -1,7 +1,7 @@ namespace test internal final enum class test.MyEnum : jet.Enum { - protected final /*constructor*/ fun (): test.MyEnum + private final /*constructor*/ fun (): test.MyEnum public final override /*1*/ fun name(): jet.String public final override /*1*/ fun ordinal(): jet.Int internal final class object test.MyEnum. {