This commit is contained in:
Alexey Kudravtsev
2010-03-25 13:29:32 +03:00
parent 19a4557f46
commit dcd1cc9824
2 changed files with 6 additions and 2 deletions
@@ -15,6 +15,7 @@
*/
package com.intellij.psi.scope.conflictResolvers;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.*;
import com.intellij.psi.infos.CandidateInfo;
@@ -37,6 +38,8 @@ import java.util.Map;
* To change this template use Options | File Templates.
*/
public class JavaMethodsConflictResolver implements PsiConflictResolver{
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.scope.conflictResolvers.JavaMethodsConflictResolver");
private final PsiElement myArgumentsList;
private final PsiType[] myActualParameterTypes;
@@ -419,6 +422,7 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{
final PsiResolveHelper resolveHelper) {
PsiSubstitutor substitutor = resolveHelper.inferTypeArguments(typeParameters, types1, types2, PsiUtil.getLanguageLevel(myArgumentsList));
for (PsiTypeParameter typeParameter : typeParameters) {
LOG.assertTrue(typeParameter != null);
if (!substitutor.getSubstitutionMap().containsKey(typeParameter)) {
substitutor = substitutor.put(typeParameter, TypeConversionUtil.typeParameterErasure(typeParameter));
}
@@ -1062,11 +1062,11 @@ public class TypeConversionUtil {
return type != null && isPrimitiveWrapper(type.getCanonicalText());
}
public static PsiType typeParameterErasure(final PsiTypeParameter typeParameter) {
public static PsiType typeParameterErasure(@NotNull PsiTypeParameter typeParameter) {
return typeParameterErasure(typeParameter, PsiSubstitutor.EMPTY);
}
private static PsiType typeParameterErasure(final PsiTypeParameter typeParameter, final PsiSubstitutor beforeSubstitutor) {
private static PsiType typeParameterErasure(@NotNull PsiTypeParameter typeParameter, final PsiSubstitutor beforeSubstitutor) {
final PsiClassType[] extendsList = typeParameter.getExtendsList().getReferencedTypes();
if (extendsList.length > 0) {
final PsiClass psiClass = extendsList[0].resolve();