Report CLASS_OBJECT_NOT_ALLOWED in LazyClassDescriptor

This commit is contained in:
Andrey Breslav
2014-02-26 19:40:53 +04:00
parent e97c5379af
commit d97a5a0d63
@@ -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();
}
}
}