ArrayList<UsageInfo> (ArrayList<? extends UsageInfo> usages) { ArrayList<UsageInfo> result = new ArrayList<>(); for (UsageInfo usageInfo : usages) { if (!(usageInfo instanceof InheritanceToDelegationUsageInfo)) { continue; } if (usageInfo instanceof ObjectUpcastedUsageInfo) { continue; } if (!myIsDelegateOtherMembers) { final FieldAccessibility delegateFieldAccessible = ((InheritanceToDelegationUsageInfo)usageInfo).getDelegateFieldAccessible(); if (!delegateFieldAccessible.isAccessible()) continue; } result.add(usageInfo); } return result; }