Fix @Nullable annotation for JetClassObject.getObjectDeclaration()

This commit is contained in:
Nikolay Krasko
2014-01-11 23:50:06 +04:00
parent c0187ffcd1
commit ce55f10df1
6 changed files with 11 additions and 13 deletions
@@ -289,9 +289,7 @@ public class PositioningStrategies {
if (element instanceof JetClassObject) { if (element instanceof JetClassObject) {
JetObjectDeclaration objectDeclaration = ((JetClassObject) element).getObjectDeclaration(); JetObjectDeclaration objectDeclaration = ((JetClassObject) element).getObjectDeclaration();
if (objectDeclaration != null) { return ImmutableList.of(objectDeclaration.getObjectKeyword().getTextRange());
return ImmutableList.of(objectDeclaration.getObjectKeyword().getTextRange());
}
} }
throw new IllegalArgumentException( throw new IllegalArgumentException(
@@ -38,9 +38,15 @@ public class JetClassObject extends JetDeclarationImpl implements JetStatementEx
return visitor.visitClassObject(this, data); return visitor.visitClassObject(this, data);
} }
@Nullable @IfNotParsed @NotNull
public JetObjectDeclaration getObjectDeclaration() { public JetObjectDeclaration getObjectDeclaration() {
return (JetObjectDeclaration) findChildByType(JetNodeTypes.OBJECT_DECLARATION); JetObjectDeclaration objectDeclaration = (JetObjectDeclaration) findChildByType(JetNodeTypes.OBJECT_DECLARATION);
assert objectDeclaration != null :
String.format("It should be impossible to produce class object element without object child:\n %s",
this.getParent().getText());
return objectDeclaration;
} }
@Nullable @IfNotParsed @Nullable @IfNotParsed
@@ -514,7 +514,6 @@ public class TypeHierarchyResolver {
@Override @Override
public void visitClassObject(@NotNull JetClassObject classObject) { public void visitClassObject(@NotNull JetClassObject classObject) {
JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration(); JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration();
if (objectDeclaration == null) return;
DeclarationDescriptor container = owner.getOwnerForChildren(); DeclarationDescriptor container = owner.getOwnerForChildren();
@@ -259,9 +259,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
public JetClassLikeInfo getClassObjectInfo(JetClassObject classObject) { public JetClassLikeInfo getClassObjectInfo(JetClassObject classObject) {
if (classObject != null) { if (classObject != null) {
JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration(); JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration();
if (objectDeclaration != null) { return JetClassInfoUtil.createClassLikeInfo(objectDeclaration);
return JetClassInfoUtil.createClassLikeInfo(objectDeclaration);
}
} }
else if (getKind() == ClassKind.OBJECT || getKind() == ClassKind.ENUM_ENTRY || getKind() == ClassKind.ENUM_CLASS) { else if (getKind() == ClassKind.OBJECT || getKind() == ClassKind.ENUM_ENTRY || getKind() == ClassKind.ENUM_CLASS) {
return new SyntheticClassObjectInfo(originalClassInfo, this); return new SyntheticClassObjectInfo(originalClassInfo, this);
@@ -138,9 +138,7 @@ public class JetStructureViewElement implements StructureViewTreeElement {
} }
else if (myElement instanceof JetClassObject) { else if (myElement instanceof JetClassObject) {
JetObjectDeclaration objectDeclaration = ((JetClassObject) myElement).getObjectDeclaration(); JetObjectDeclaration objectDeclaration = ((JetClassObject) myElement).getObjectDeclaration();
if (objectDeclaration != null) { return wrapDeclarations(objectDeclaration.getDeclarations());
return wrapDeclarations(objectDeclaration.getDeclarations());
}
} }
return EMPTY_ARRAY; return EMPTY_ARRAY;
@@ -89,7 +89,6 @@ public class DeclarationBodyVisitor extends TranslatorVisitor<Void> {
@Override @Override
public Void visitClassObject(@NotNull JetClassObject classObject, TranslationContext context) { public Void visitClassObject(@NotNull JetClassObject classObject, TranslationContext context) {
JetObjectDeclaration declaration = classObject.getObjectDeclaration(); JetObjectDeclaration declaration = classObject.getObjectDeclaration();
assert declaration != null : "Declaration for class object must be not null";
ClassDescriptor descriptor = getClassDescriptor(context.bindingContext(), declaration); ClassDescriptor descriptor = getClassDescriptor(context.bindingContext(), declaration);
JsExpression value = ClassTranslator.generateClassCreation(declaration, descriptor, context); JsExpression value = ClassTranslator.generateClassCreation(declaration, descriptor, context);