From d97a5a0d6358223215c2e84cb45e947376906fa5 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 26 Feb 2014 19:40:53 +0400 Subject: [PATCH] Report CLASS_OBJECT_NOT_ALLOWED in LazyClassDescriptor --- .../lang/resolve/lazy/descriptors/LazyClassDescriptor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java index 39653b65ae7..b0de922a2b7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/LazyClassDescriptor.java @@ -53,6 +53,7 @@ import org.jetbrains.jet.storage.StorageManager; import java.util.*; +import static org.jetbrains.jet.lang.diagnostics.Errors.CLASS_OBJECT_NOT_ALLOWED; import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isSyntheticClassObject; import static org.jetbrains.jet.lang.resolve.ModifiersChecker.*; import static org.jetbrains.jet.lang.resolve.name.SpecialNames.getClassObjectName; @@ -288,6 +289,10 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti @Nullable public JetClassLikeInfo getClassObjectInfo(JetClassObject classObject) { if (classObject != null) { + if (getKind() != ClassKind.CLASS && getKind() != ClassKind.TRAIT && getKind() != ClassKind.ANNOTATION_CLASS || isInner()) { + resolveSession.getTrace().report(CLASS_OBJECT_NOT_ALLOWED.on(classObject)); + } + JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration(); return JetClassInfoUtil.createClassLikeInfo(objectDeclaration); } @@ -523,4 +528,4 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti private ScopeProvider getScopeProvider() { return resolveSession.getScopeProvider(); } -} \ No newline at end of file +}