Report CLASS_OBJECT_NOT_ALLOWED in LazyClassDescriptor
This commit is contained in:
+6
-1
@@ -53,6 +53,7 @@ import org.jetbrains.jet.storage.StorageManager;
|
|||||||
|
|
||||||
import java.util.*;
|
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.DescriptorUtils.isSyntheticClassObject;
|
||||||
import static org.jetbrains.jet.lang.resolve.ModifiersChecker.*;
|
import static org.jetbrains.jet.lang.resolve.ModifiersChecker.*;
|
||||||
import static org.jetbrains.jet.lang.resolve.name.SpecialNames.getClassObjectName;
|
import static org.jetbrains.jet.lang.resolve.name.SpecialNames.getClassObjectName;
|
||||||
@@ -288,6 +289,10 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti
|
|||||||
@Nullable
|
@Nullable
|
||||||
public JetClassLikeInfo getClassObjectInfo(JetClassObject classObject) {
|
public JetClassLikeInfo getClassObjectInfo(JetClassObject classObject) {
|
||||||
if (classObject != null) {
|
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();
|
JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration();
|
||||||
return JetClassInfoUtil.createClassLikeInfo(objectDeclaration);
|
return JetClassInfoUtil.createClassLikeInfo(objectDeclaration);
|
||||||
}
|
}
|
||||||
@@ -523,4 +528,4 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti
|
|||||||
private ScopeProvider getScopeProvider() {
|
private ScopeProvider getScopeProvider() {
|
||||||
return resolveSession.getScopeProvider();
|
return resolveSession.getScopeProvider();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user