diff options
author | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:01:23 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:01:23 -0700 |
commit | 1aa2e09bdbd413eacb677e9fa4b50630530d0656 (patch) | |
tree | 2f4cc6d69645bd460aa253fdecb606d764fbd25d /java/java-psi-impl/src/com/intellij/psi/impl/source/tree | |
parent | 02cf98d65c798d368fcec43ed64a001d513bdd4f (diff) | |
download | idea-1aa2e09bdbd413eacb677e9fa4b50630530d0656.tar.gz |
Snapshot idea/138.1696 from git://git.jetbrains.org/idea/community.git
Change-Id: I50c97b83a815ce635e49a38380ba5b8765e4b16a
Diffstat (limited to 'java/java-psi-impl/src/com/intellij/psi/impl/source/tree')
5 files changed, 14 insertions, 11 deletions
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodReferenceResolver.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodReferenceResolver.java index 4066c6cc4a78..29525add1549 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodReferenceResolver.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/MethodReferenceResolver.java @@ -231,8 +231,8 @@ public class MethodReferenceResolver implements ResolveCache.PolyVariantContextR checkSameSignatures(conflicts); checkAccessStaticLevels(conflicts, true); - final PsiType[] parameterTypes = mySignature.getParameterTypes(); - boolean hasReceiver = PsiMethodReferenceUtil.hasReceiver(parameterTypes, myQualifierResolveResult, myReferenceExpression); + final PsiType[] argTypes = mySignature.getParameterTypes(); + boolean hasReceiver = PsiMethodReferenceUtil.hasReceiver(argTypes, myQualifierResolveResult, myReferenceExpression); final List<CandidateInfo> firstCandidates = new ArrayList<CandidateInfo>(); final List<CandidateInfo> secondCandidates = new ArrayList<CandidateInfo>(); @@ -242,19 +242,19 @@ public class MethodReferenceResolver implements ResolveCache.PolyVariantContextR final PsiMethod psiMethod = ((MethodCandidateInfo)conflict).getElement(); final PsiSubstitutor substitutor = conflict.getSubstitutor(); - final PsiType[] signatureParameterTypes2 = psiMethod.getSignature(substitutor).getParameterTypes(); + final PsiType[] parameterTypes = psiMethod.getSignature(substitutor).getParameterTypes(); final boolean varargs = ((MethodCandidateInfo)conflict).isVarargs(); if (varargs && (!psiMethod.isVarArgs() || myFunctionalMethodVarArgs)) continue; - if ((varargs || parameterTypes.length == signatureParameterTypes2.length) && - PsiMethodReferenceUtil.isCorrectAssignment(signatureParameterTypes2, parameterTypes, varargs, 0)) { + if ((varargs || argTypes.length == parameterTypes.length) && + PsiMethodReferenceUtil.isCorrectAssignment(parameterTypes, argTypes, varargs, 0)) { firstCandidates.add(conflict); } if (hasReceiver && - (varargs || parameterTypes.length == signatureParameterTypes2.length + 1) && - PsiMethodReferenceUtil.isCorrectAssignment(signatureParameterTypes2, parameterTypes, varargs, 1)) { + (varargs || argTypes.length == parameterTypes.length + 1) && + PsiMethodReferenceUtil.isCorrectAssignment(parameterTypes, argTypes, varargs, 1)) { secondCandidates.add(conflict); } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiConditionalExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiConditionalExpressionImpl.java index 73639b26c945..5bf3addded5f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiConditionalExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiConditionalExpressionImpl.java @@ -92,7 +92,7 @@ public class PsiConditionalExpressionImpl extends ExpressionPsiElement implement if (PsiUtil.isLanguageLevel8OrHigher(this) && PsiPolyExpressionUtil.isPolyExpression(this) && - !MethodCandidateInfo.ourOverloadGuard.currentStack().contains(this.getParent())) { + !MethodCandidateInfo.ourOverloadGuard.currentStack().contains(PsiUtil.skipParenthesizedExprUp(this.getParent()))) { //15.25.3 Reference Conditional Expressions // The type of a poly reference conditional expression is the same as its target type. return InferenceSession.getTargetType(this); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiKeywordImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiKeywordImpl.java index f39a88e8b35c..cdc2fa881c0b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiKeywordImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiKeywordImpl.java @@ -25,6 +25,7 @@ import com.intellij.psi.tree.IElementType; import org.jetbrains.annotations.NotNull; import java.lang.reflect.Field; +import java.util.Locale; public class PsiKeywordImpl extends LeafPsiElement implements PsiKeyword, PsiJavaToken { public PsiKeywordImpl(@NotNull IElementType type, CharSequence text) { @@ -52,7 +53,7 @@ public class PsiKeywordImpl extends LeafPsiElement implements PsiKeyword, PsiJav static { for(Field field: PsiKeyword.class.getFields()) { - CharTableImpl.staticIntern(field.getName().toLowerCase()); + CharTableImpl.staticIntern(field.getName().toLowerCase(Locale.ENGLISH)); } } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java index e5892be2fb4d..ce38729027d9 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java @@ -31,6 +31,8 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Locale; + public class PsiLiteralExpressionImpl extends ExpressionPsiElement implements PsiLiteralExpression, PsiLanguageInjectionHost, ContributedReferenceHost { @@ -93,7 +95,7 @@ public class PsiLiteralExpressionImpl @Override public Object getValue() { final IElementType type = getLiteralElementType(); - String text = NUMERIC_LITERALS.contains(type) ? getCanonicalText().toLowerCase() : getCanonicalText(); + String text = NUMERIC_LITERALS.contains(type) ? getCanonicalText().toLowerCase(Locale.ENGLISH) : getCanonicalText(); final int textLength = text.length(); if (type == JavaTokenType.INTEGER_LITERAL) { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java index 8dd43933c660..8b10b6326df9 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java @@ -234,7 +234,7 @@ public class PsiReferenceExpressionImpl extends PsiReferenceExpressionBase imple } @Override - protected void elementFinished(PsiElement element) { + protected void elementFinished(@NotNull PsiElement element) { if (!(element instanceof PsiReferenceExpressionImpl)) return; PsiReferenceExpressionImpl expression = (PsiReferenceExpressionImpl)element; resolveCache.resolveWithCaching(expression, INSTANCE, false, false, containingFile); |