COMMA_IN_WHEN_CONDITION_WITHOUT_ARGUMENT is an ERROR now.
Migrated code. Updated test data in IDE tests. Dropped whenWithRangeTestsAndMultiConditions.kt: "Introduce subject" is not applicable to 'when' with ||-ed conditions.
This commit is contained in:
@@ -170,8 +170,8 @@ public object UsageTypeUtils {
|
||||
} ->
|
||||
if (descriptor is ConstructorDescriptor) CLASS_NEW_OPERATOR else FUNCTION_CALL
|
||||
|
||||
refExpr.getParentOfTypeAndBranch<KtBinaryExpression>(){ getOperationReference() } != null,
|
||||
refExpr.getParentOfTypeAndBranch<KtUnaryExpression>(){ getOperationReference() } != null,
|
||||
refExpr.getParentOfTypeAndBranch<KtBinaryExpression>(){ getOperationReference() } != null ||
|
||||
refExpr.getParentOfTypeAndBranch<KtUnaryExpression>(){ getOperationReference() } != null ||
|
||||
refExpr.getParentOfTypeAndBranch<KtWhenConditionInRange>(){ getOperationReference() } != null ->
|
||||
FUNCTION_CALL
|
||||
|
||||
@@ -195,7 +195,7 @@ public object UsageTypeUtils {
|
||||
return when (descriptor) {
|
||||
is ClassifierDescriptor -> when {
|
||||
// Treat object accesses as variables to simulate the old behaviour (when variables were created for objects)
|
||||
DescriptorUtils.isNonCompanionObject(descriptor), DescriptorUtils.isEnumEntry(descriptor) -> getVariableUsageType()
|
||||
DescriptorUtils.isNonCompanionObject(descriptor) || DescriptorUtils.isEnumEntry(descriptor) -> getVariableUsageType()
|
||||
DescriptorUtils.isCompanionObject(descriptor) -> COMPANION_OBJECT_ACCESS
|
||||
else -> getClassUsageType()
|
||||
}
|
||||
|
||||
+1
-1
@@ -83,7 +83,7 @@ public class KotlinFindClassUsagesHandler(
|
||||
public override fun execute(element: PsiClass): Boolean {
|
||||
val isInterface = element.isInterface()
|
||||
return when {
|
||||
isInterface && options.isDerivedInterfaces, !isInterface && options.isDerivedClasses ->
|
||||
isInterface && options.isDerivedInterfaces || !isInterface && options.isDerivedClasses ->
|
||||
KotlinFindUsagesHandler.processUsage(processor, element.getNavigationElement())
|
||||
else -> true
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ internal fun getPsiMethod(element: PsiElement?): PsiMethod? {
|
||||
return when {
|
||||
element == null -> null
|
||||
element is PsiMethod -> element
|
||||
parent is KtNamedFunction, parent is KtSecondaryConstructor -> LightClassUtil.getLightClassMethod(parent as KtFunction)
|
||||
parent is KtNamedFunction || parent is KtSecondaryConstructor -> LightClassUtil.getLightClassMethod(parent as KtFunction)
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -529,7 +529,7 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
|
||||
|
||||
val neighborType = neighbor?.getNode()?.getElementType()
|
||||
val lineBreaksNeeded = when {
|
||||
neighborType == KtTokens.LBRACE, neighborType == KtTokens.RBRACE -> 1
|
||||
neighborType == KtTokens.LBRACE || neighborType == KtTokens.RBRACE -> 1
|
||||
neighbor is KtDeclaration && (neighbor !is KtProperty || decl !is KtProperty) -> 2
|
||||
else -> 1
|
||||
}
|
||||
|
||||
+1
-1
@@ -86,7 +86,7 @@ object CreateParameterByRefActionFactory : CreateParameterFromUsageFactory<KtSim
|
||||
.firstOrNull()
|
||||
?.let {
|
||||
when {
|
||||
(it is KtNamedFunction || it is KtSecondaryConstructor) && varExpected,
|
||||
(it is KtNamedFunction || it is KtSecondaryConstructor) && varExpected ||
|
||||
it is KtPropertyAccessor -> chooseContainingClass(it)
|
||||
it is KtAnonymousInitializer -> it.parent?.parent as? KtClass
|
||||
it is KtSuperTypeListEntry -> {
|
||||
|
||||
+1
-1
@@ -153,7 +153,7 @@ class KotlinFunctionCallUsage(
|
||||
|
||||
private fun needSeparateVariable(element: PsiElement): Boolean {
|
||||
return when {
|
||||
element is KtConstantExpression, element is KtThisExpression, element is KtSimpleNameExpression -> false
|
||||
element is KtConstantExpression || element is KtThisExpression || element is KtSimpleNameExpression -> false
|
||||
element is KtBinaryExpression && OperatorConventions.ASSIGNMENT_OPERATIONS.contains(element.operationToken) -> true
|
||||
element is KtUnaryExpression && OperatorConventions.INCREMENT_OPERATIONS.contains(element.operationToken) -> true
|
||||
element is KtCallExpression -> element.getResolvedCall(context)?.resultingDescriptor is ConstructorDescriptor
|
||||
|
||||
+1
-1
@@ -333,7 +333,7 @@ val ControlFlow.possibleReturnTypes: List<KotlinType>
|
||||
return when {
|
||||
!returnType.isNullabilityFlexible() ->
|
||||
listOf(returnType)
|
||||
returnType.isAnnotatedNotNull(), returnType.isAnnotatedNullable() ->
|
||||
returnType.isAnnotatedNotNull() || returnType.isAnnotatedNullable() ->
|
||||
listOf(approximateFlexibleTypes(returnType))
|
||||
else ->
|
||||
returnType.getCapability(javaClass<Flexibility>()).let { listOf(it!!.upperBound, it.lowerBound) }
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ internal fun ExtractionData.inferParametersInfo(
|
||||
val resolvedCall = refInfo.resolveResult.resolvedCall
|
||||
val extensionReceiver = resolvedCall?.extensionReceiver
|
||||
val receiverToExtract = (when {
|
||||
extensionReceiver == ReceiverValue.NO_RECEIVER,
|
||||
extensionReceiver == ReceiverValue.NO_RECEIVER ||
|
||||
isSynthesizedInvoke(refInfo.resolveResult.descriptor) -> resolvedCall?.dispatchReceiver
|
||||
else -> extensionReceiver
|
||||
} as? ReceiverValue) ?: ReceiverValue.NO_RECEIVER
|
||||
|
||||
+1
-1
@@ -368,7 +368,7 @@ object KotlinIntroduceVariableHandler : KotlinIntroduceHandlerBase() {
|
||||
for ((place, parent) in parentsWithSelf.zip(parents)) {
|
||||
when {
|
||||
parent is KtContainerNode && place !is KtBlockExpression && !parent.isBadContainerNode(place) -> result = parent
|
||||
parent is KtClassBody, parent is KtFile -> return result
|
||||
parent is KtClassBody || parent is KtFile -> return result
|
||||
parent is KtBlockExpression -> result = parent
|
||||
parent is KtWhenEntry && place !is KtBlockExpression -> result = parent
|
||||
parent is KtDeclarationWithBody && parent.bodyExpression == place && place !is KtBlockExpression -> result = parent
|
||||
|
||||
@@ -436,8 +436,8 @@ public fun PsiElement.canRefactor(): Boolean {
|
||||
return when {
|
||||
this is PsiPackage ->
|
||||
getDirectories().any { it.canRefactor() }
|
||||
this is KtElement,
|
||||
this is PsiMember && getLanguage() == JavaLanguage.INSTANCE,
|
||||
this is KtElement ||
|
||||
this is PsiMember && getLanguage() == JavaLanguage.INSTANCE ||
|
||||
this is PsiDirectory ->
|
||||
isWritable() && ProjectRootsUtil.isInProjectSource(this)
|
||||
else ->
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ public class KotlinMemberInfoStorage(
|
||||
descriptor1 is FunctionDescriptor && descriptor is FunctionDescriptor -> {
|
||||
!OverloadUtil.isOverloadable(descriptor1, descriptor)
|
||||
}
|
||||
descriptor1 is PropertyDescriptor && descriptor is PropertyDescriptor,
|
||||
descriptor1 is PropertyDescriptor && descriptor is PropertyDescriptor ||
|
||||
descriptor1 is ClassDescriptor && descriptor is ClassDescriptor -> true
|
||||
else -> false
|
||||
}
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ public class KotlinMoveFilesOrDirectoriesHandler : MoveFilesOrDirectoriesHandler
|
||||
private fun adjustElements(elements: Array<out PsiElement>): Array<PsiElement>? {
|
||||
return elements.map {
|
||||
when {
|
||||
it is PsiFile, it is PsiDirectory -> it
|
||||
it is PsiFile || it is PsiDirectory -> it
|
||||
it is PsiClass && it.getContainingClass() == null -> it.getContainingFile()
|
||||
it is KtClassOrObject && it.getParent() is KtFile -> it.getParent()
|
||||
else -> return null
|
||||
|
||||
@@ -114,9 +114,9 @@ public fun KtElement.getInternalReferencesToUpdateOnPackageNameChange(packageNam
|
||||
val oldPackageName = packageNameInfo.oldPackageName
|
||||
val newPackageName = packageNameInfo.newPackageName
|
||||
return when {
|
||||
isExtension,
|
||||
packageName == oldPackageName,
|
||||
packageName?.asString() == newPackageName.asString(),
|
||||
isExtension ||
|
||||
packageName == oldPackageName ||
|
||||
packageName?.asString() == newPackageName.asString() ||
|
||||
isImported(descriptor) -> {
|
||||
if (isAncestor(declaration, false)) {
|
||||
if (descriptor.importableFqName == null) return null
|
||||
|
||||
@@ -176,11 +176,11 @@ public class KotlinPsiUnifier(
|
||||
return when {
|
||||
op1 == op2 ->
|
||||
true
|
||||
op1 == KtTokens.NOT_IN, op2 == KtTokens.NOT_IN ->
|
||||
op1 == KtTokens.NOT_IN || op2 == KtTokens.NOT_IN ->
|
||||
false
|
||||
op1 == KtTokens.EXCLEQ, op2 == KtTokens.EXCLEQ ->
|
||||
op1 == KtTokens.EXCLEQ || op2 == KtTokens.EXCLEQ ->
|
||||
false
|
||||
op1 in OperatorConventions.COMPARISON_OPERATIONS, op2 in OperatorConventions.COMPARISON_OPERATIONS ->
|
||||
op1 in OperatorConventions.COMPARISON_OPERATIONS || op2 in OperatorConventions.COMPARISON_OPERATIONS ->
|
||||
false
|
||||
else ->
|
||||
true
|
||||
@@ -662,7 +662,7 @@ public class KotlinPsiUnifier(
|
||||
|
||||
private fun matchResolvedInfo(e1: PsiElement, e2: PsiElement): Status? {
|
||||
return when {
|
||||
e1 !is KtElement, e2 !is KtElement ->
|
||||
e1 !is KtElement || e2 !is KtElement ->
|
||||
null
|
||||
|
||||
e1 is KtDestructuringDeclaration && e2 is KtDestructuringDeclaration ->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
fun test(n: Int): String {
|
||||
return <caret>when {
|
||||
n < 0, n > 1000 -> "unknown"
|
||||
n < 0 || n > 1000 -> "unknown"
|
||||
n <= 10 -> "small"
|
||||
n <= 100 -> "average"
|
||||
else -> "big"
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ fun test(n: Int): String {
|
||||
return <caret>when {
|
||||
n in 0..10 -> "small"
|
||||
n >= 10 && n <= 100 -> "average"
|
||||
n < 0, n > 1000 -> "unknown"
|
||||
n < 0 || n > 1000 -> "unknown"
|
||||
else -> "big"
|
||||
}
|
||||
}
|
||||
Vendored
-8
@@ -1,8 +0,0 @@
|
||||
fun test(n: Int): String {
|
||||
return <caret>when {
|
||||
n in 0..5, n in 5..10 -> "small"
|
||||
n in 10..50, n in 50..100 -> "average"
|
||||
n in 100..500, n in 500..1000 -> "big"
|
||||
else -> "unknown"
|
||||
}
|
||||
}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
fun test(n: Int): String {
|
||||
return <caret>when (n) {
|
||||
in 0..5, in 5..10 -> "small"
|
||||
in 10..50, in 50..100 -> "average"
|
||||
in 100..500, in 500..1000 -> "big"
|
||||
else -> "unknown"
|
||||
}
|
||||
}
|
||||
@@ -2062,12 +2062,6 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("whenWithRangeTestsAndMultiConditions.kt")
|
||||
public void testWhenWithRangeTestsAndMultiConditions() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/when/introduceSubject/whenWithRangeTestsAndMultiConditions.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("whenWithSubject.kt")
|
||||
public void testWhenWithSubject() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/when/introduceSubject/whenWithSubject.kt");
|
||||
|
||||
Reference in New Issue
Block a user