private static boolean processAssignmentTarget(@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;
  }
private static boolean processAssignmentTarget(@NotNull PsiElement element,
                                                 @NotNull JavaSliceUsage parent,
                                                 @NotNull Processor<? super SliceUsage> processor)