Choose first non-flexible when selecting most specific

This commit is contained in:
Denis Zharkov
2015-12-11 14:48:45 +03:00
parent 02311538d6
commit 8d0c3281cd
21 changed files with 126 additions and 125 deletions
@@ -395,17 +395,18 @@ public class OverridingUtil {
return CollectionsKt.first(candidates);
}
CallableMemberDescriptor lastNonFlexible = null;
CallableMemberDescriptor firstNonFlexible = null;
for (CallableMemberDescriptor candidate : candidates) {
if (!FlexibleTypesKt.isFlexible(candidate.getReturnType())) {
lastNonFlexible = candidate;
if (firstNonFlexible == null && !FlexibleTypesKt.isFlexible(candidate.getReturnType())) {
firstNonFlexible = candidate;
break;
}
}
if (lastNonFlexible != null) {
return lastNonFlexible;
if (firstNonFlexible != null) {
return firstNonFlexible;
}
return CollectionsKt.last(candidates);
return CollectionsKt.first(candidates);
}
private static void createAndBindFakeOverride(