diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt b/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt index 35aca069db8..bd04e0c8a2b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt @@ -87,7 +87,7 @@ fun JetClassOrObject.effectiveDeclarations(): List = fun JetClass.isAbstract() = isTrait() || hasModifier(JetTokens.ABSTRACT_KEYWORD) [suppress("UNCHECKED_CAST")] -fun PsiElement.replaced(newElement: T): T = replace(newElement)!! as T +fun PsiElement.replaced(newElement: T): T = replace(newElement) as T fun JetElement.blockExpressionsOrSingle(): Iterator = if (this is JetBlockExpression) getStatements().iterator() else SingleIterator(this) diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java index 2cff620cb9c..9673c8a2ac9 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallHierarchyNodeDescriptor.java @@ -58,7 +58,7 @@ public class KotlinCallHierarchyNodeDescriptor extends HierarchyNodeDescriptor i @Override public final boolean isValid(){ - return myElement != null && myElement.isValid(); + return myElement.isValid(); } @Override diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCalleeMethodsTreeStructure.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCalleeMethodsTreeStructure.java index 19b5a99b3ce..615c352d08f 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCalleeMethodsTreeStructure.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCalleeMethodsTreeStructure.java @@ -23,7 +23,6 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; -import com.intellij.util.ArrayUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; @@ -93,8 +92,9 @@ public class KotlinCalleeMethodsTreeStructure extends KotlinCallTreeStructure { return result; } + @NotNull @Override - protected Object[] buildChildren(HierarchyNodeDescriptor descriptor) { + protected Object[] buildChildren(@NotNull HierarchyNodeDescriptor descriptor) { PsiElement targetElement = getTargetElement(descriptor); // Kotlin class constructor invoked from Java code @@ -118,14 +118,10 @@ public class KotlinCalleeMethodsTreeStructure extends KotlinCallTreeStructure { return buildChildrenByKotlinTarget(descriptor, (JetElement) targetElement); } - if (javaTreeStructure != null) { - CallHierarchyNodeDescriptor javaDescriptor = descriptor instanceof CallHierarchyNodeDescriptor - ? (CallHierarchyNodeDescriptor) descriptor - : ((KotlinCallHierarchyNodeDescriptor)descriptor).getJavaDelegate(); - return javaTreeStructure.getChildElements(javaDescriptor); - } - - return ArrayUtil.EMPTY_OBJECT_ARRAY; + CallHierarchyNodeDescriptor javaDescriptor = descriptor instanceof CallHierarchyNodeDescriptor + ? (CallHierarchyNodeDescriptor) descriptor + : ((KotlinCallHierarchyNodeDescriptor)descriptor).getJavaDelegate(); + return javaTreeStructure.getChildElements(javaDescriptor); } private Object[] buildChildrenByKotlinTarget(HierarchyNodeDescriptor descriptor, JetElement targetElement) { diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java index cb3d2442c75..604c1f3b234 100644 --- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java +++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java @@ -57,8 +57,9 @@ public abstract class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStr this.codeBlockForLocalDeclaration = codeBlockForLocalDeclaration; } + @NotNull @Override - protected Object[] buildChildren(HierarchyNodeDescriptor descriptor) { + protected Object[] buildChildren(@NotNull HierarchyNodeDescriptor descriptor) { final PsiElement element = getTargetElement(descriptor); BindingContext bindingContext = @@ -97,8 +98,9 @@ public abstract class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStr this.javaTreeStructure = new CallerMethodsTreeStructure(project, basePsiMethod, scopeType); } + @NotNull @Override - protected Object[] buildChildren(HierarchyNodeDescriptor descriptor) { + protected Object[] buildChildren(@NotNull HierarchyNodeDescriptor descriptor) { PsiElement element = getTargetElement(descriptor); SearchScope searchScope = getSearchScope(scopeType, basePsiClass); @@ -106,7 +108,7 @@ public abstract class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStr new HashMap(); Object[] javaCallers = null; - if (element instanceof PsiMethod && javaTreeStructure != null) { + if (element instanceof PsiMethod) { javaCallers = javaTreeStructure.getChildElements(getJavaNodeDescriptor(descriptor)); processPsiMethodCallers((PsiMethod) element, descriptor, methodToDescriptorMap, searchScope, true); }