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");