anchor.diff:    // by iterating through the hash table and the collisions list and
     // calling [:other.add:].
     static ValueSet copyTo(
  -      ValueSet other, List<HInstruction> table, ValueSetNode collisions) {
  +      ValueSet other, List<HInstruction?> table, ValueSetNode? collisions) {
       // Copy elements from the hash table.
       for (final instruction in table) {
         if (instruction != null) other.add(instruction);
  
positive.code:     size++;
    }
  
    HInstruction lookup(HInstruction instruction) {
      int hashCode = instruction.gvnHashCode();
      int index = hashCode % table.length;
      // Look in the hash table.
      HInstruction probe = table[index];
      if (probe != null && probe.gvnEquals(instruction)) return probe;
      // Look in the collisions list.
      for (ValueSetNode node = collisions; node != null; node = node.next) {
        if (node.hashCode == hashCode) {
          HInstruction cached = node.value;
          if (cached.gvnEquals(instruction)) return cached;
  
negative.code:     // Reset the table with a bigger capacity.
      assert(capacity > table.length);
      size = 0;
      table = List.filled(capacity, null);
      collisions = null;
      // Add the old instructions to the new table.
      copyTo(this, oldTable, oldCollisions);
  