private void computeAskForFields() {
        this.askForFields = null;
        if (isFieldListRequest(summaryRequestedInFill)) {
            var fieldSet = parseFieldList(summaryRequestedInFill);
            if (! fieldSet.isEmpty()) {
                this.askForFields = fieldSet;
            }
        } else if (isPresentationRequest(summaryRequestedInFill)) {
            if (! fieldsFromQuery.isEmpty()) {
                if (summaryFromQuery == null) {
                    askForFields = fieldsFromQuery;
                } else {
                    var fieldsFromClass = getFieldsForClass(summaryFromQuery);
                    if (! fieldsFromClass.containsAll(fieldsFromQuery)) {
                        askForFields = new HashSet<String>();
                        askForFields.addAll(fieldsFromQuery);
                        askForFields.addAll(fieldsFromClass);
                    }
                }
            }
        } else if (summaryRequestedInFill != null && summaryRequestedInFill.startsWith("[")) {
            throw new IllegalArgumentException("fill(" + summaryRequestedInFill + ") is not valid");
        } else if (isDefaultRequest(summaryRequestedInFill)) {
            if (! fieldsFromQuery.isEmpty()) {
                this.askForFields = fieldsFromQuery;
            }
        }
        if (askForFields != null) {
            var available = fieldsAlreadyFilled(resultHasFilled);
            available.addAll(getFieldsForClass(ALL_FIELDS_CLASS));
            askForFields.retainAll(available);
            if (askForFields.isEmpty()) {
                askForFields = null;
            }
        }
    }
resolve summary class to use when none provided
container-search/src/main/java/com/yahoo/prelude/fastsearch/PartialSummaryHandler.java