ambiguous method calls: conflict resolver, tests (IDEA-78027)

This commit is contained in:
anna
2012-04-09 12:12:56 +02:00
parent d8748bb076
commit e386cea3ab
3 changed files with 23 additions and 1 deletions
@@ -337,7 +337,8 @@ public class JavaMethodsConflictResolver implements PsiConflictResolver{
boolean noBoxing = boxingHappening || type1 instanceof PsiPrimitiveType == type2 instanceof PsiPrimitiveType;
final boolean allowUncheckedConversion =
!method1.hasModifierProperty(PsiModifier.STATIC) && !method2.hasModifierProperty(PsiModifier.STATIC) ||
method1.getContainingClass() == method2.getContainingClass();
InheritanceUtil.isInheritorOrSelf(method1.getContainingClass(), method2.getContainingClass(), true) ||
InheritanceUtil.isInheritorOrSelf( method2.getContainingClass(), method1.getContainingClass(),true);
final boolean assignable2From1 = noBoxing && TypeConversionUtil.isAssignable(type2, type1, allowUncheckedConversion);
final boolean assignable1From2 = noBoxing && TypeConversionUtil.isAssignable(type1, type2, allowUncheckedConversion);
if (assignable1From2 || assignable2From1) {