code: def add(self, field, op=None, val=None):
          
          if field.has_subfield():
              self._fields[field.full_name] = 1
          else:
              self._fields[field.name] = 1
          if op and op.is_size() and not op.is_variable():
              # get minimal part of array with slicing,
              # but cannot use slice with variables
              self._slices[field.name] = val + 1
          if op and op.is_variable():
              # add the variable too
              self._fields[val] = 1
docs: Update report fields to include new one, if it doesn't already.
  
          :param field: The field to include
          :type field: Field
          :param op: Operation
          :type op: ConstraintOperator
          :return: None