private static Iterable<String> ids(StringHolderCriteria crit) {
    Expression filter =Criterias.toQuery(crit).filter()
            .orElseThrow(() -> new AssertionError("No filter present"));

    KeyExtractor extractor = KeyExtractor.defaultFactory().create(TypeHolder.StringHolder.class);
    KeyLookupAnalyzer analyzer = KeyLookupAnalyzer.fromExtractor(extractor);
    KeyLookupAnalyzer.Result result = analyzer.analyze(filter);

    if (!result.isOptimizable()) {
      return Collections.emptyList();
    }

    return (Iterable<String>) result.values();
  }
ID should only be extracted for {@code in} and {@code is} operators (not for others)
criteria/geode/test/org/immutables/criteria/geode/KeyLookupAnalyzerTest.java