public static void change(TypeMigrationLabeler labeler, UsageInfo[] usages) { List<UsageInfo> nonCodeUsages = new ArrayList<UsageInfo>(); for (UsageInfo usage : usages) { if (((TypeMigrationUsageInfo) usage).isExcluded()) continue; final PsiElement element = usage.getElement(); if (element instanceof PsiVariable || element instanceof PsiMember || element instanceof PsiExpression || element instanceof PsiReferenceParameterList) { labeler.change((TypeMigrationUsageInfo) usage); } else { nonCodeUsages.add(usage); } } for (UsageInfo usageInfo : nonCodeUsages) { final PsiElement element = usageInfo.getElement(); if (element != null) { final PsiReference reference = element.getReference(); if (reference != null) { final Object target = labeler.getConversion(element); if (target instanceof PsiMember) { try { reference.bindToElement((PsiElement) target); } catch (IncorrectOperationException e) { // skip } } } } } }