join method

AbstractState<D> join(
  1. AbstractState<D> other
)

Implementation

AbstractState<D> join(AbstractState<D> other) {
  final result = <String, D>{};
  final allVars = {..._values.keys, ...other._values.keys};

  for (final v in allVars) {
    // Use getForJoin to treat missing variables as BOTTOM
    // This ensures that unprocessed predecessors don't pollute the join
    final thisVal = getForJoin(v);
    final otherVal = other.getForJoin(v);
    result[v] = thisVal.join(otherVal);
  }

  return AbstractState(_defaultValue, result);
}