private static Function<Predicate<PsiElement>, Predicate<PsiElement>> getIsAssignedPredicateWithSkipOptions(PsiVariable variable) {
    return predicate -> {
      VariableAssignedVisitor visitor = new VariableAssignedVisitor(variable, predicate, true);
      return (Predicate<PsiElement>)element -> {
        element.accept(visitor);
        return visitor.isAssigned();
      };
    };
  }
private static Function<Predicate<PsiElement>, Predicate<PsiElement>> getIsAssignedPredicateWithSkipOptions(PsiVariable variable)