boolean (@NotNull PsiElement element, @NotNull JavaSliceUsage parent, @NotNull Processor<? super SliceUsage> processor) { if (!parent.params.scope.contains(element)) return true; if (element instanceof PsiCompiledElement) element = element.getNavigationElement(); if (element.getLanguage() != JavaLanguage.INSTANCE) { return JavaSliceBuilder.create(parent).withSubstitutor(EmptySubstitutor.getInstance()).dropSyntheticField().process(element, processor); } Pair<PsiElement, PsiSubstitutor> pair = getAssignmentTarget(element, parent); if (pair != null) { return JavaSliceBuilder.create(parent).withSubstitutor(pair.second).dropSyntheticField().process(element, processor); } if (parent.params.showInstanceDereferences && isDereferenced(element)) { SliceUsage usage = new JavaSliceDereferenceUsage(element.getParent(), parent, parent.getSubstitutor()); return processor.process(usage); } return true; }