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 6e79618b9ac..1d3d2c4c9dd 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java @@ -524,7 +524,7 @@ public class TypeHierarchyResolver { createClassDescriptorForSingleton(objectDeclaration, getClassObjectName(container.getName()), ClassKind.CLASS_OBJECT); PackageLikeBuilder.ClassObjectStatus status = - isEnumEntry(container) || isObject(container) ? + isEnumEntry(container) || isObject(container) || c.getTopDownAnalysisParameters().isDeclaredLocally() ? PackageLikeBuilder.ClassObjectStatus.NOT_ALLOWED : owner.setClassObjectDescriptor(classObjectDescriptor); diff --git a/compiler/testData/diagnostics/tests/classObjects/classObjectInLocalClass.kt b/compiler/testData/diagnostics/tests/classObjects/classObjectInLocalClass.kt new file mode 100644 index 00000000000..e3b310edb4a --- /dev/null +++ b/compiler/testData/diagnostics/tests/classObjects/classObjectInLocalClass.kt @@ -0,0 +1,9 @@ +fun test() { + class A { + class object {} + } + + object { + class object {} + } +} \ 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 b94c92e5ae0..c7fb0e5d6ae 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -1439,6 +1439,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest("compiler/testData/diagnostics/tests/classObjects/ClassObjectCannotAccessClassFields.kt"); } + @TestMetadata("classObjectInLocalClass.kt") + public void testClassObjectInLocalClass() throws Exception { + doTest("compiler/testData/diagnostics/tests/classObjects/classObjectInLocalClass.kt"); + } + @TestMetadata("ClassObjectVisibility.kt") public void testClassObjectVisibility() throws Exception { doTest("compiler/testData/diagnostics/tests/classObjects/ClassObjectVisibility.kt");