diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java index a0fb3bc848b..fa1e1dee223 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java @@ -178,7 +178,7 @@ public interface Errors { .create(ERROR, modifierSetPosition(JetTokens.ABSTRACT_KEYWORD)); DiagnosticFactory0 CLASS_IN_SUPERTYPE_FOR_ENUM = DiagnosticFactory0.create(ERROR); - + DiagnosticFactory0 TYPE_PARAMETERS_IN_ENUM = DiagnosticFactory0.create(ERROR); DiagnosticFactory1 ENUM_ENTRY_SHOULD_BE_INITIALIZED = DiagnosticFactory1.create(ERROR, DECLARATION_NAME); DiagnosticFactory1 ENUM_ENTRY_ILLEGAL_TYPE = DiagnosticFactory1.create(ERROR); DiagnosticFactory1 LOCAL_ENUM_NOT_ALLOWED = DiagnosticFactory1.create(ERROR, DECLARATION_NAME); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DefaultErrorMessages.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DefaultErrorMessages.java index 86b9f9e7557..bc1d980ab57 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DefaultErrorMessages.java @@ -102,6 +102,7 @@ public class DefaultErrorMessages { MAP.put(ILLEGAL_ENUM_ANNOTATION, "Annotation ''enum'' is only applicable for class"); MAP.put(REDUNDANT_MODIFIER_IN_GETTER, "Visibility modifiers are redundant in getter"); MAP.put(TRAIT_CAN_NOT_BE_FINAL, "Trait cannot be final"); + MAP.put(TYPE_PARAMETERS_IN_ENUM, "Enum class cannot have type parameters"); MAP.put(TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, "Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly"); // TODO: message MAP.put(RETURN_NOT_ALLOWED, "'return' is not allowed here"); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java index 1c03423aba0..041df5b63ed 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java @@ -114,9 +114,16 @@ public class DescriptorResolver { BindingTrace trace ) { // TODO : Where-clause - List typeParameters = Lists.newArrayList(); + List typeParameters = classElement.getTypeParameters(); + List typeParameterDescriptors = new ArrayList(typeParameters.size()); + if (descriptor.getKind() == ClassKind.ENUM_CLASS) { + JetTypeParameterList typeParameterList = classElement.getTypeParameterList(); + if (typeParameterList != null) { + trace.report(TYPE_PARAMETERS_IN_ENUM.on(typeParameterList)); + } + } int index = 0; - for (JetTypeParameter typeParameter : classElement.getTypeParameters()) { + for (JetTypeParameter typeParameter : typeParameters) { if (!topDownAnalysisParameters.isLazyTopDownAnalysis()) { // TODO: Support AnnotationResolver.reportUnsupportedAnnotationForTypeParameter(typeParameter, trace); @@ -132,10 +139,10 @@ public class DescriptorResolver { toSourceElement(typeParameter) ); trace.record(BindingContext.TYPE_PARAMETER, typeParameter, typeParameterDescriptor); - typeParameters.add(typeParameterDescriptor); + typeParameterDescriptors.add(typeParameterDescriptor); index++; } - descriptor.setTypeParameterDescriptors(typeParameters); + descriptor.setTypeParameterDescriptors(typeParameterDescriptors); Modality defaultModality = descriptor.getKind() == ClassKind.TRAIT ? Modality.ABSTRACT : Modality.FINAL; descriptor.setModality(resolveModalityFromModifiers(classElement, defaultModality)); descriptor.setVisibility(resolveVisibilityFromModifiers(classElement, getDefaultClassVisibility(descriptor))); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetClassInfo.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetClassInfo.java index 9de4687d8ba..bd12d236d74 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetClassInfo.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetClassInfo.java @@ -17,14 +17,13 @@ package org.jetbrains.jet.lang.resolve.lazy.data; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.ClassKind; import org.jetbrains.jet.lang.psi.*; import java.util.List; public class JetClassInfo extends JetClassOrObjectInfo { - - @NotNull private final ClassKind kind; protected JetClassInfo(@NotNull JetClass classOrObject) { @@ -51,10 +50,10 @@ public class JetClassInfo extends JetClassOrObjectInfo { return element.getClassObject(); } - @NotNull + @Nullable @Override - public List getTypeParameters() { - return element.getTypeParameters(); + public JetTypeParameterList getTypeParameterList() { + return element.getTypeParameterList(); } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetClassLikeInfo.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetClassLikeInfo.java index 7003cf9633c..1a7eb9484e3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetClassLikeInfo.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetClassLikeInfo.java @@ -27,7 +27,6 @@ import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.List; public interface JetClassLikeInfo extends JetDeclarationContainer { - @NotNull FqName getContainingPackageFqName(); @@ -48,9 +47,8 @@ public interface JetClassLikeInfo extends JetDeclarationContainer { @Nullable JetClassOrObject getCorrespondingClassOrObject(); - @NotNull - @ReadOnly - List getTypeParameters(); + @Nullable + JetTypeParameterList getTypeParameterList(); @NotNull @ReadOnly diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetObjectInfo.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetObjectInfo.java index 0d34ed61091..d564d6e9036 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetObjectInfo.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetObjectInfo.java @@ -17,14 +17,17 @@ package org.jetbrains.jet.lang.resolve.lazy.data; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.ClassKind; -import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.psi.JetClassObject; +import org.jetbrains.jet.lang.psi.JetObjectDeclaration; +import org.jetbrains.jet.lang.psi.JetParameter; +import org.jetbrains.jet.lang.psi.JetTypeParameterList; import java.util.Collections; import java.util.List; public class JetObjectInfo extends JetClassOrObjectInfo { - @NotNull private final ClassKind kind; @@ -38,10 +41,10 @@ public class JetObjectInfo extends JetClassOrObjectInfo { return null; } - @NotNull + @Nullable @Override - public List getTypeParameters() { - return Collections.emptyList(); + public JetTypeParameterList getTypeParameterList() { + return null; } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetScriptInfo.kt b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetScriptInfo.kt index 343b284e9fa..12536fdfa70 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetScriptInfo.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/JetScriptInfo.kt @@ -16,16 +16,10 @@ package org.jetbrains.jet.lang.resolve.lazy.data -import org.jetbrains.jet.lang.psi.JetTypeParameter -import org.jetbrains.jet.lang.psi.JetParameter +import org.jetbrains.jet.lang.psi.* import org.jetbrains.jet.lang.descriptors.ClassKind -import org.jetbrains.jet.lang.psi.JetScript import org.jetbrains.jet.lang.resolve.ScriptNameUtil -import org.jetbrains.jet.lang.psi.JetNamedFunction -import org.jetbrains.jet.lang.psi.JetDeclaration -import org.jetbrains.jet.lang.psi.JetCallableDeclaration import org.jetbrains.jet.lang.resolve.name.FqName -import org.jetbrains.jet.lang.psi.JetClassObject public class JetScriptInfo( val script: JetScript @@ -37,7 +31,7 @@ public class JetScriptInfo( override fun getClassObjects() = listOf() override fun getScopeAnchor() = script override fun getCorrespondingClassOrObject() = null - override fun getTypeParameters() = listOf() + override fun getTypeParameterList() = null override fun getPrimaryConstructorParameters() = listOf() override fun getClassKind() = ClassKind.CLASS override fun getDeclarations() = script.getDeclarations() diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/SyntheticClassObjectInfo.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/SyntheticClassObjectInfo.java index c6d02448715..bb2670bd2ea 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/SyntheticClassObjectInfo.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/data/SyntheticClassObjectInfo.java @@ -78,10 +78,10 @@ public class SyntheticClassObjectInfo implements JetClassLikeInfo { return null; } - @NotNull + @Nullable @Override - public List getTypeParameters() { - return Collections.emptyList(); + public JetTypeParameterList getTypeParameterList() { + return null; } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java index 607df3a3b05..c9152882b5a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java @@ -58,6 +58,7 @@ import org.jetbrains.jet.storage.StorageManager; import java.util.*; import static org.jetbrains.jet.lang.diagnostics.Errors.CLASS_OBJECT_NOT_ALLOWED; +import static org.jetbrains.jet.lang.diagnostics.Errors.TYPE_PARAMETERS_IN_ENUM; import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isSyntheticClassObject; import static org.jetbrains.jet.lang.resolve.ModifiersChecker.*; import static org.jetbrains.jet.lang.resolve.name.SpecialNames.getClassObjectName; @@ -529,8 +530,14 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes @Override public List invoke() { JetClassLikeInfo classInfo = declarationProvider.getOwnerInfo(); - List typeParameters = classInfo.getTypeParameters(); + JetTypeParameterList typeParameterList = classInfo.getTypeParameterList(); + if (typeParameterList == null) return Collections.emptyList(); + if (classInfo.getClassKind() == ClassKind.ENUM_CLASS) { + resolveSession.getTrace().report(TYPE_PARAMETERS_IN_ENUM.on(typeParameterList)); + } + + List typeParameters = typeParameterList.getParameters(); List parameters = new ArrayList(typeParameters.size()); for (int i = 0; i < typeParameters.size(); i++) { parameters.add(new LazyTypeParameterDescriptor(resolveSession, LazyClassDescriptor.this, typeParameters.get(i), i)); diff --git a/compiler/testData/diagnostics/tests/cast/WhenWithExpression.kt b/compiler/testData/diagnostics/tests/cast/WhenWithExpression.kt index 0e3d276b23e..55d8b40bed7 100644 --- a/compiler/testData/diagnostics/tests/cast/WhenWithExpression.kt +++ b/compiler/testData/diagnostics/tests/cast/WhenWithExpression.kt @@ -1,5 +1,7 @@ -enum class List(val size : Int) { - Nil : List(0) +class List(val size : Int) { + class object { + val Nil = List(0) + } } fun List.join() = diff --git a/compiler/testData/diagnostics/tests/cast/WhenWithExpression.txt b/compiler/testData/diagnostics/tests/cast/WhenWithExpression.txt index c0da5d81221..aaab80f66ee 100644 --- a/compiler/testData/diagnostics/tests/cast/WhenWithExpression.txt +++ b/compiler/testData/diagnostics/tests/cast/WhenWithExpression.txt @@ -1,40 +1,19 @@ -package +package internal fun List.join(): kotlin.String -internal final enum class List : kotlin.Enum> { - private constructor List(/*0*/ size: kotlin.Int) +internal final class List { + public constructor List(/*0*/ size: kotlin.Int) internal final val size: kotlin.Int - public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: List): kotlin.Int - public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final override /*1*/ /*fake_override*/ fun name(): kotlin.String - public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - public enum entry Nil : List { - private constructor Nil() - internal final override /*1*/ /*fake_override*/ val size: kotlin.Int - public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: List): kotlin.Int - public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final override /*1*/ /*fake_override*/ fun name(): kotlin.String - public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int + + internal class object { + private constructor () + internal final val Nil: List + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - public class object : List.Nil { - private constructor () - internal final override /*1*/ /*fake_override*/ val size: kotlin.Int - public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: List): kotlin.Int - public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final override /*1*/ /*fake_override*/ fun name(): kotlin.String - public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } } - - // Static members - public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): List - public final /*synthesized*/ fun values(): kotlin.Array> -} \ No newline at end of file +} diff --git a/compiler/testData/diagnostics/tests/enum/typeParametersInEnum.kt b/compiler/testData/diagnostics/tests/enum/typeParametersInEnum.kt new file mode 100644 index 00000000000..c9001c094bc --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/typeParametersInEnum.kt @@ -0,0 +1,7 @@ +// KT-5696 Prohibit type parameters for enum classes + +package bug + +public enum class Foo { + A : Foo() +} diff --git a/compiler/testData/diagnostics/tests/enum/typeParametersInEnum.txt b/compiler/testData/diagnostics/tests/enum/typeParametersInEnum.txt new file mode 100644 index 00000000000..4d56dea8cf9 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/typeParametersInEnum.txt @@ -0,0 +1,38 @@ +package + +package bug { + + public final enum class Foo : kotlin.Enum> { + private constructor Foo() + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: bug.Foo): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final override /*1*/ /*fake_override*/ fun name(): kotlin.String + public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public enum entry A : bug.Foo { + private constructor A() + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: bug.Foo): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final override /*1*/ /*fake_override*/ fun name(): kotlin.String + public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public class object : bug.Foo.A { + private constructor () + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: bug.Foo): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final override /*1*/ /*fake_override*/ fun name(): kotlin.String + public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + } + + // Static members + public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): bug.Foo + public final /*synthesized*/ fun values(): kotlin.Array> + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/regressions/Jet183.kt b/compiler/testData/diagnostics/tests/regressions/Jet183.kt index a6899d93794..8d872a5f8d9 100644 --- a/compiler/testData/diagnostics/tests/regressions/Jet183.kt +++ b/compiler/testData/diagnostics/tests/regressions/Jet183.kt @@ -10,13 +10,6 @@ enum class ProtocolState { abstract fun signal() : ProtocolState } -enum class Foo { - X - -} - - - fun box() { val x: ProtocolState = ProtocolState.WAITING } diff --git a/compiler/testData/diagnostics/tests/regressions/Jet183.txt b/compiler/testData/diagnostics/tests/regressions/Jet183.txt index 50630878af6..6dab8df5e48 100644 --- a/compiler/testData/diagnostics/tests/regressions/Jet183.txt +++ b/compiler/testData/diagnostics/tests/regressions/Jet183.txt @@ -1,29 +1,7 @@ -package +package internal fun box(): kotlin.Unit -internal final enum class Foo : kotlin.Enum> { - private constructor Foo() - public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: Foo): kotlin.Int - public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final override /*1*/ /*fake_override*/ fun name(): kotlin.String - public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - public enum entry X { - private constructor X() - - public class object : Foo.X { - private constructor () - } - } - - // Static members - public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Foo - public final /*synthesized*/ fun values(): kotlin.Array> -} - internal final enum class ProtocolState : kotlin.Enum { private constructor ProtocolState() public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int @@ -33,7 +11,7 @@ internal final enum class ProtocolState : kotlin.Enum { public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int internal abstract fun signal(): ProtocolState public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - + public enum entry TALKING : ProtocolState { private constructor TALKING() public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int @@ -43,7 +21,7 @@ internal final enum class ProtocolState : kotlin.Enum { public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int internal open override /*1*/ fun signal(): ProtocolState public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - + public class object : ProtocolState.TALKING { private constructor () public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int @@ -55,7 +33,7 @@ internal final enum class ProtocolState : kotlin.Enum { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } } - + public enum entry WAITING : ProtocolState { private constructor WAITING() public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int @@ -65,7 +43,7 @@ internal final enum class ProtocolState : kotlin.Enum { public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int internal open override /*1*/ fun signal(): ProtocolState public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - + public class object : ProtocolState.WAITING { private constructor () public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int @@ -77,8 +55,8 @@ internal final enum class ProtocolState : kotlin.Enum { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } } - + // Static members public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): ProtocolState public final /*synthesized*/ fun values(): kotlin.Array -} \ No newline at end of file +} diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 84e62e5d8ab..70874cd5e91 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -3931,6 +3931,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("typeParametersInEnum.kt") + public void testTypeParametersInEnum() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/typeParametersInEnum.kt"); + doTest(fileName); + } + @TestMetadata("valuesValueOfAndEntriesAccessibility.kt") public void testValuesValueOfAndEntriesAccessibility() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/enum/valuesValueOfAndEntriesAccessibility.kt"); diff --git a/idea/testData/checker/regression/Jet183.kt b/idea/testData/checker/regression/Jet183.kt index a48e2aa712e..4b456ffec7c 100644 --- a/idea/testData/checker/regression/Jet183.kt +++ b/idea/testData/checker/regression/Jet183.kt @@ -10,13 +10,6 @@ enum class ProtocolState { abstract fun signal() : ProtocolState } -enum class Foo { - X - -} - - - fun box() { val x: ProtocolState = ProtocolState.WAITING }