Report CLASS_OBJECT_NOT_ALLOWED for local classes
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
fun test() {
|
||||
class A {
|
||||
<!CLASS_OBJECT_NOT_ALLOWED!>class object {}<!>
|
||||
}
|
||||
|
||||
object {
|
||||
<!CLASS_OBJECT_NOT_ALLOWED!>class object {}<!>
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user