combineCommonParents static method

void combineCommonParents(
  1. List<PredictionContext?> parents
)

Make pass over all M parents; merge any {@code equals()} ones.

Implementation

static void combineCommonParents(List<PredictionContext?> parents) {
  final uniqueParents = <PredictionContext, PredictionContext>{};

  for (var p = 0; p < parents.length; p++) {
    final parent = parents[p];
    if (parent != null && !uniqueParents.containsKey(parent)) {
      // don't replace
      uniqueParents[parent] = parent;
    }
  }

  for (var p = 0; p < parents.length; p++) {
    parents[p] = uniqueParents[parents[p]]!;
  }
}