diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/referenceUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/referenceUtil.kt index dcbd12b8d24..e384f6320c9 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/referenceUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/referenceUtil.kt @@ -52,12 +52,9 @@ import java.util.* // For property accessor return enclosing property val PsiReference.unwrappedTargets: Set get() { - fun PsiElement.adjust(): PsiElement? { - val target = unwrapped?.originalElement - return when { - target is KtPropertyAccessor -> target.getNonStrictParentOfType() - else -> target - } + fun PsiElement.adjust(): PsiElement? = when (val target = unwrapped?.originalElement) { + is KtPropertyAccessor -> target.getNonStrictParentOfType() + else -> target } return when (this) { @@ -107,8 +104,7 @@ fun PsiReference.matchesTarget(candidateTarget: PsiElement): Boolean { } if (element is KtLabelReferenceExpression) { - val labelParent = (element.parent as? KtContainerNode)?.parent - when (labelParent) { + when ((element.parent as? KtContainerNode)?.parent) { is KtReturnExpression -> unwrappedTargets.forEach { if (it !is KtFunctionLiteral && !(it is KtNamedFunction && it.name.isNullOrEmpty())) return@forEach it as KtFunction @@ -136,7 +132,7 @@ fun PsiReference.matchesTarget(candidateTarget: PsiElement): Boolean { if (this is KtReference) { return targets.any { it.isConstructorOf(unwrappedCandidate) - || it is KtObjectDeclaration && it.isCompanion() && it.getNonStrictParentOfType() == unwrappedCandidate + || it is KtObjectDeclaration && it.isCompanion() && it.getNonStrictParentOfType() == unwrappedCandidate } } // TODO: Workaround for Kotlin constructor search in Java code. To be removed after refactoring of the search API @@ -205,12 +201,10 @@ val KDocName.mainReference: KDocReference get() = references.firstIsInstance() val KtElement.mainReference: KtReference? - get() { - return when { - this is KtReferenceExpression -> mainReference - this is KDocName -> mainReference - else -> references.firstIsInstanceOrNull() - } + get() = when (this) { + is KtReferenceExpression -> mainReference + is KDocName -> mainReference + else -> references.firstIsInstanceOrNull() } fun KtElement.resolveMainReferenceToDescriptors(): Collection { @@ -229,8 +223,7 @@ fun KtExpression.readWriteAccess(useResolveForReadWrite: Boolean) = readWriteAcc fun KtExpression.readWriteAccessWithFullExpression(useResolveForReadWrite: Boolean): Pair { var expression = getQualifiedExpressionForSelectorOrThis() loop@ while (true) { - val parent = expression.parent - when (parent) { + when (val parent = expression.parent) { is KtParenthesizedExpression, is KtAnnotatedExpression, is KtLabeledExpression -> expression = parent as KtExpression else -> break@loop } @@ -288,8 +281,8 @@ fun KtElement.canBeResolvedViaImport(target: DeclarationDescriptor, bindingConte fun KtFunction.getCalleeByLambdaArgument(): KtSimpleNameExpression? { val argument = getParentOfTypeAndBranch { getArgumentExpression() } ?: return null val callExpression = when (argument) { - is KtLambdaArgument -> argument.parent as? KtCallExpression - else -> (argument.parent as? KtValueArgumentList)?.parent as? KtCallExpression - } ?: return null + is KtLambdaArgument -> argument.parent as? KtCallExpression + else -> (argument.parent as? KtValueArgumentList)?.parent as? KtCallExpression + } ?: return null return callExpression.calleeExpression as? KtSimpleNameExpression } \ No newline at end of file