summaryrefslogtreecommitdiff
path: root/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-08-20 17:28:18 -0700
committerTor Norbye <tnorbye@google.com>2014-08-20 17:28:18 -0700
commitd76e3920c56d37c942092b7dca20fcaded81c0a5 (patch)
tree80a55c7b59c38377216daaada4e8bc47b69ceb9a /java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java
parent3b37877a2561bf9fbe072253a18688807d523505 (diff)
parent1aa2e09bdbd413eacb677e9fa4b50630530d0656 (diff)
downloadidea-d76e3920c56d37c942092b7dca20fcaded81c0a5.tar.gz
Merge remote-tracking branch 'aosp/upstream-master' into merge
Conflicts: .idea/modules.xml platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdatesXmlLoader.java Change-Id: Id899dae9a1e1c79272f8a70e14a7dcef4f760d7f
Diffstat (limited to 'java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java')
-rw-r--r--java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java b/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java
index f43358007eab..f05df7dab9c1 100644
--- a/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java
+++ b/java/java-psi-api/src/com/intellij/psi/infos/MethodCandidateInfo.java
@@ -130,7 +130,6 @@ public class MethodCandidateInfo extends CandidateInfo{
final CurrentCandidateProperties properties = new CurrentCandidateProperties(method, substitutor, isVarargs(), true);
final CurrentCandidateProperties alreadyThere = map.put(getMarkerList(), properties);
try {
- properties.setSubstitutor(substitutor);
PsiType[] argumentTypes = getArgumentTypes();
if (argumentTypes == null) {
return ApplicabilityLevel.NOT_APPLICABLE;
@@ -143,7 +142,11 @@ public class MethodCandidateInfo extends CandidateInfo{
return applicabilityLevel;
}
finally {
- if (alreadyThere == null) map.remove(getMarkerList());
+ if (alreadyThere == null) {
+ map.remove(getMarkerList());
+ } else {
+ map.put(getMarkerList(), alreadyThere);
+ }
}
}
return getApplicabilityLevelInner();
@@ -269,10 +272,8 @@ public class MethodCandidateInfo extends CandidateInfo{
CURRENT_CANDIDATE.set(map);
}
final PsiMethod method = getElement();
- final CurrentCandidateProperties alreadyThere = map.get(getMarkerList());
- if (alreadyThere == null) {
+ final CurrentCandidateProperties alreadyThere =
map.put(getMarkerList(), new CurrentCandidateProperties(method, super.getSubstitutor(), isVarargs(), !includeReturnConstraint));
- }
try {
PsiTypeParameter[] typeParameters = method.getTypeParameters();
@@ -293,7 +294,11 @@ public class MethodCandidateInfo extends CandidateInfo{
.inferTypeArguments(typeParameters, method.getParameterList().getParameters(), arguments, mySubstitutor, parent, policy, myLanguageLevel);
}
finally {
- if (alreadyThere == null) map.remove(getMarkerList());
+ if (alreadyThere == null) {
+ map.remove(getMarkerList());
+ } else {
+ map.put(getMarkerList(), alreadyThere);
+ }
}
}