From ce55f10df172165a4dd9c3a3aebdbf518f4e768e Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Sat, 11 Jan 2014 23:50:06 +0400 Subject: [PATCH] Fix @Nullable annotation for JetClassObject.getObjectDeclaration() --- .../jet/lang/diagnostics/PositioningStrategies.java | 4 +--- .../src/org/jetbrains/jet/lang/psi/JetClassObject.java | 10 ++++++++-- .../jet/lang/resolve/TypeHierarchyResolver.java | 1 - .../resolve/lazy/descriptors/LazyClassDescriptor.java | 4 +--- .../plugin/structureView/JetStructureViewElement.java | 4 +--- .../translate/declaration/DeclarationBodyVisitor.java | 1 - 6 files changed, 11 insertions(+), 13 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java index 4df1fd5a338..14caf53168f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/PositioningStrategies.java @@ -289,9 +289,7 @@ public class PositioningStrategies { if (element instanceof JetClassObject) { JetObjectDeclaration objectDeclaration = ((JetClassObject) element).getObjectDeclaration(); - if (objectDeclaration != null) { - return ImmutableList.of(objectDeclaration.getObjectKeyword().getTextRange()); - } + return ImmutableList.of(objectDeclaration.getObjectKeyword().getTextRange()); } throw new IllegalArgumentException( diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClassObject.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClassObject.java index e2169addfa0..d5f60c8f3c1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClassObject.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetClassObject.java @@ -38,9 +38,15 @@ public class JetClassObject extends JetDeclarationImpl implements JetStatementEx return visitor.visitClassObject(this, data); } - @Nullable @IfNotParsed + @NotNull 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 diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java index 7004fa0ae13..9015f66277a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeHierarchyResolver.java @@ -514,7 +514,6 @@ public class TypeHierarchyResolver { @Override public void visitClassObject(@NotNull JetClassObject classObject) { JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration(); - if (objectDeclaration == null) return; DeclarationDescriptor container = owner.getOwnerForChildren(); 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 95079bdf496..f45786776b1 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 @@ -259,9 +259,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc public JetClassLikeInfo getClassObjectInfo(JetClassObject classObject) { if (classObject != null) { 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) { return new SyntheticClassObjectInfo(originalClassInfo, this); diff --git a/idea/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java b/idea/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java index bc91aaaf06f..aa1f0f57d5c 100644 --- a/idea/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java +++ b/idea/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java @@ -138,9 +138,7 @@ public class JetStructureViewElement implements StructureViewTreeElement { } else if (myElement instanceof JetClassObject) { JetObjectDeclaration objectDeclaration = ((JetClassObject) myElement).getObjectDeclaration(); - if (objectDeclaration != null) { - return wrapDeclarations(objectDeclaration.getDeclarations()); - } + return wrapDeclarations(objectDeclaration.getDeclarations()); } return EMPTY_ARRAY; diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/DeclarationBodyVisitor.java b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/DeclarationBodyVisitor.java index 759378f5ddb..9dde95a4af6 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/DeclarationBodyVisitor.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/DeclarationBodyVisitor.java @@ -89,7 +89,6 @@ public class DeclarationBodyVisitor extends TranslatorVisitor { @Override public Void visitClassObject(@NotNull JetClassObject classObject, TranslationContext context) { JetObjectDeclaration declaration = classObject.getObjectDeclaration(); - assert declaration != null : "Declaration for class object must be not null"; ClassDescriptor descriptor = getClassDescriptor(context.bindingContext(), declaration); JsExpression value = ClassTranslator.generateClassCreation(declaration, descriptor, context);