From db830c88b4409ba89f5a8e730ec59241709e4ef4 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 17 Sep 2012 17:14:55 +0400 Subject: [PATCH] EA-38787 Exception because of enumeration without name --- .../jet/lang/resolve/TypeHierarchyResolver.java | 2 +- .../diagnostics/tests/enum/enumWithEmptyName.kt | 2 ++ .../jet/checkers/JetDiagnosticsTestGenerated.java | 10 ++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/enum/enumWithEmptyName.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java index baec4cee20c..0371154db4b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java @@ -282,7 +282,7 @@ public class TypeHierarchyResolver { if (mutableClassDescriptor.getKind() == ClassKind.ENUM_CLASS) { MutableClassDescriptor classObjectDescriptor = new MutableClassDescriptor( mutableClassDescriptor, outerScope, ClassKind.CLASS_OBJECT, - getClassObjectName(klass.getName())); + getClassObjectName(JetPsiUtil.safeName(klass.getName()))); mutableClassDescriptor.getBuilder().setClassObjectDescriptor(classObjectDescriptor); classObjectDescriptor.setModality(Modality.FINAL); classObjectDescriptor.setVisibility(ModifiersChecker.resolveVisibilityFromModifiers(klass)); diff --git a/compiler/testData/diagnostics/tests/enum/enumWithEmptyName.kt b/compiler/testData/diagnostics/tests/enum/enumWithEmptyName.kt new file mode 100644 index 00000000000..02cc1dbca97 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/enumWithEmptyName.kt @@ -0,0 +1,2 @@ +enum class { +} \ 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 23528ff4a16..6e35aa9de22 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -15,16 +15,13 @@ */ package org.jetbrains.jet.checkers; -import junit.framework.Assert; import junit.framework.Test; import junit.framework.TestSuite; - -import java.io.File; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.test.InnerTestClasses; import org.jetbrains.jet.test.TestMetadata; -import org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve; +import java.io.File; /** This class is generated by {@link org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve}. DO NOT MODIFY MANUALLY */ @InnerTestClasses({JetDiagnosticsTestGenerated.Tests.class, JetDiagnosticsTestGenerated.Script.class}) @@ -1377,6 +1374,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/diagnostics/tests/enum/enumStarImport.kt"); } + @TestMetadata("enumWithEmptyName.kt") + public void testEnumWithEmptyName() throws Exception { + doTest("compiler/testData/diagnostics/tests/enum/enumWithEmptyName.kt"); + } + @TestMetadata("importEnumFromJava.kt") public void testImportEnumFromJava() throws Exception { doTest("compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt");