void () { try { PsiElement[] psiRoots = file.getPsiRoots(); Set<PsiElement> processed = new HashSet<PsiElement>(psiRoots.length * 2, (float)0.5); for (PsiElement psiRoot : psiRoots) { if (progress != null) progress.checkCanceled(); if (!processed.add(psiRoot)) continue; if (!psiRootProcessor.process(psiRoot)) { canceled.set(true); return; } } myManager.dropResolveCaches(); } catch (ProcessCanceledException e) { canceled.set(true); pceThrown.set(true); } }