summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/codeInsight/completion/methodChains/search/ChainRelevance.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-impl/src/com/intellij/codeInsight/completion/methodChains/search/ChainRelevance.java')
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/completion/methodChains/search/ChainRelevance.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/methodChains/search/ChainRelevance.java b/java/java-impl/src/com/intellij/codeInsight/completion/methodChains/search/ChainRelevance.java
index 09e008a7aa4b..0aa7231ead1d 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/methodChains/search/ChainRelevance.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/methodChains/search/ChainRelevance.java
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.TestOnly;
* @author Dmitry Batkovich <dmitry.batkovich@jetbrains.com>
*/
public class ChainRelevance implements Comparable<ChainRelevance> {
- public static final ChainRelevance LOWEST = new ChainRelevance(Integer.MAX_VALUE, 0, Integer.MAX_VALUE, Integer.MAX_VALUE, false, false);
+ public static final ChainRelevance LOWEST = new ChainRelevance(Integer.MAX_VALUE, 0, Integer.MAX_VALUE, Integer.MAX_VALUE, false, false, 0);
private final int myChainSize;
private final int myLastMethodOccurrences;
@@ -15,19 +15,22 @@ public class ChainRelevance implements Comparable<ChainRelevance> {
private final int myNotMatchedStringVars;
private final boolean myHasCallingVariableInContext;
private final boolean myFirstMethodStatic;
+ private final int myParametersInContext;
public ChainRelevance(final int chainSize,
final int lastMethodOccurrences,
final int unreachableParametersCount,
final int notMatchedStringVars,
final boolean hasCallingVariableInContext,
- final boolean firstMethodStatic) {
+ final boolean firstMethodStatic,
+ final int parametersInContext) {
myChainSize = chainSize;
myLastMethodOccurrences = lastMethodOccurrences;
myUnreachableParametersCount = unreachableParametersCount;
myNotMatchedStringVars = notMatchedStringVars;
myHasCallingVariableInContext = hasCallingVariableInContext;
myFirstMethodStatic = firstMethodStatic;
+ myParametersInContext = parametersInContext;
}
@TestOnly
@@ -62,16 +65,22 @@ public class ChainRelevance implements Comparable<ChainRelevance> {
@Override
public int compareTo(@NotNull final ChainRelevance that) {
+ if (myHasCallingVariableInContext && !that.myHasCallingVariableInContext) {
+ return 1;
+ }
+ if (that.myHasCallingVariableInContext && !myHasCallingVariableInContext) {
+ return -1;
+ }
if (myFirstMethodStatic && !that.myFirstMethodStatic) {
return -1;
}
if (that.myFirstMethodStatic && !myFirstMethodStatic) {
return 1;
}
- if (myHasCallingVariableInContext && !that.myHasCallingVariableInContext) {
+ if (myParametersInContext > that.myParametersInContext) {
return 1;
}
- if (that.myHasCallingVariableInContext && !myHasCallingVariableInContext) {
+ if (myParametersInContext <= that.myParametersInContext) {
return -1;
}
int sub = myLastMethodOccurrences - that.myLastMethodOccurrences;