diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationResolver.kt
index e46db2ef415..7f22eb1b7d6 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationResolver.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationResolver.kt
@@ -78,9 +78,13 @@ class DeclarationResolver(
continue
}
- redeclarations.add(Pair(DescriptorToSourceUtils.getSourceFromDescriptor(descriptor)!!, descriptor.getName()))
+ DescriptorToSourceUtils.getSourceFromDescriptor(descriptor)?.let {
+ redeclarations.add(Pair(it, descriptor.getName()))
+ }
if (descriptor2 is PropertyDescriptor) {
- redeclarations.add(Pair(DescriptorToSourceUtils.descriptorToDeclaration(descriptor2)!!, descriptor2.getName()))
+ DescriptorToSourceUtils.descriptorToDeclaration(descriptor2)?.let {
+ redeclarations.add(Pair(it, descriptor2.getName()))
+ }
}
}
}
diff --git a/compiler/testData/diagnostics/tests/redeclarations/EnumName.kt b/compiler/testData/diagnostics/tests/redeclarations/EnumName.kt
new file mode 100644
index 00000000000..b0e491b10ca
--- /dev/null
+++ b/compiler/testData/diagnostics/tests/redeclarations/EnumName.kt
@@ -0,0 +1,3 @@
+enum class A {
+ name
+}
diff --git a/compiler/testData/diagnostics/tests/redeclarations/EnumName.txt b/compiler/testData/diagnostics/tests/redeclarations/EnumName.txt
new file mode 100644
index 00000000000..e772822cb7b
--- /dev/null
+++ b/compiler/testData/diagnostics/tests/redeclarations/EnumName.txt
@@ -0,0 +1,18 @@
+package
+
+public final enum class A : kotlin.Enum {
+ enum entry name
+
+ private constructor A()
+ public final override /*1*/ /*fake_override*/ val name: kotlin.String
+ public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
+ protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
+ public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: A): 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 open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
+
+ // Static members
+ public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): A
+ public final /*synthesized*/ fun values(): kotlin.Array
+}
diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java
index 53e8b198477..bfbd3c4d70b 100644
--- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java
+++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java
@@ -13377,6 +13377,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
doTest(fileName);
}
+ @TestMetadata("EnumName.kt")
+ public void testEnumName() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/redeclarations/EnumName.kt");
+ doTest(fileName);
+ }
+
@TestMetadata("FunVsCtorInDifferentFiles.kt")
public void testFunVsCtorInDifferentFiles() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/redeclarations/FunVsCtorInDifferentFiles.kt");