Change Signature: Initialize JetFunctionCallUsage delegate early to ensure consistent analysis results
This commit is contained in:
+12
-10
@@ -119,7 +119,7 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro
|
||||
|
||||
private static void findOneMethodUsages(
|
||||
@NotNull JetFunctionDefinitionUsage<?> functionUsageInfo,
|
||||
JetChangeInfo changeInfo,
|
||||
final JetChangeInfo changeInfo,
|
||||
final Set<UsageInfo> result
|
||||
) {
|
||||
boolean isInherited = functionUsageInfo.isInherited();
|
||||
@@ -194,15 +194,17 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro
|
||||
}
|
||||
}
|
||||
|
||||
UsagesSearchPackage.processDelegationCallConstructorUsages(functionPsi, functionPsi.getUseScope(),
|
||||
new Function1<JetConstructorDelegationCall, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(JetConstructorDelegationCall element) {
|
||||
result.add(new JetConstructorDelegationCallUsage(element));
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
UsagesSearchPackage.processDelegationCallConstructorUsages(
|
||||
functionPsi,
|
||||
functionPsi.getUseScope(),
|
||||
new Function1<JetConstructorDelegationCall, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(JetConstructorDelegationCall element) {
|
||||
result.add(new JetConstructorDelegationCallUsage(element, changeInfo));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private static void processInternalReferences(
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ public class JavaConstructorDeferredUsageInDelegationCall(
|
||||
): JavaMethodDeferredKotlinUsage<JetConstructorDelegationCall>(delegationCall) {
|
||||
override fun resolve(javaMethodChangeInfo: JetChangeInfo): JavaMethodKotlinUsageWithDelegate<JetConstructorDelegationCall> {
|
||||
return object : JavaMethodKotlinUsageWithDelegate<JetConstructorDelegationCall>(delegationCall, javaMethodChangeInfo) {
|
||||
override val delegateUsage = JetConstructorDelegationCallUsage(delegationCall)
|
||||
override val delegateUsage = JetConstructorDelegationCallUsage(delegationCall, javaMethodChangeInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
-6
@@ -16,15 +16,17 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.refactoring.changeSignature.usages
|
||||
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetChangeInfo
|
||||
import org.jetbrains.kotlin.lexer.JetTokens
|
||||
import org.jetbrains.kotlin.psi.JetConstructorDelegationCall
|
||||
import org.jetbrains.kotlin.psi.JetPsiFactory
|
||||
import org.jetbrains.kotlin.psi.JetSecondaryConstructor
|
||||
|
||||
public class JetConstructorDelegationCallUsage(call: JetConstructorDelegationCall) : JetUsageInfo<JetConstructorDelegationCall>(call) {
|
||||
public class JetConstructorDelegationCallUsage(
|
||||
call: JetConstructorDelegationCall,
|
||||
changeInfo: JetChangeInfo
|
||||
) : JetUsageInfo<JetConstructorDelegationCall>(call) {
|
||||
val delegate = JetFunctionCallUsage(call, changeInfo.methodDescriptor.originalPrimaryFunction)
|
||||
|
||||
override fun processUsage(changeInfo: JetChangeInfo, element: JetConstructorDelegationCall): Boolean {
|
||||
val isThisCall = element.isCallToThis()
|
||||
|
||||
@@ -34,8 +36,7 @@ public class JetConstructorDelegationCallUsage(call: JetConstructorDelegationCal
|
||||
elementToWorkWith = constructor.replaceImplicitDelegationCallWithExplicit(isThisCall)
|
||||
}
|
||||
|
||||
val result = JetFunctionCallUsage(
|
||||
elementToWorkWith, changeInfo.methodDescriptor.originalPrimaryFunction).processUsage(changeInfo, elementToWorkWith)
|
||||
val result = delegate.processUsage(changeInfo, elementToWorkWith)
|
||||
|
||||
if (changeInfo.getNewParametersCount() == 0 && !isThisCall && !elementToWorkWith.isImplicit()) {
|
||||
(elementToWorkWith.getParent() as? JetSecondaryConstructor)?.getColon()?.delete()
|
||||
|
||||
Reference in New Issue
Block a user