code: public static SourceBuilder forEnvironment(ProcessingEnvironment env, FeatureSet features) {
      return new SourceBuilder(
          new CompilerReflection(env.getElementUtils()),
          Optional.ofNullable(features).orElseGet(() -> new EnvironmentFeatureSet(env)));
    }
docs: Returns a {@link SourceBuilder}. {@code env} will be inspected for potential import collisions.
  If {@code features} is not null, it will be used instead of those deduced from {@code env}.