addFormElement(child, indexToInsertAt) {
      super.addFormElement(child, indexToInsertAt);
      if (this.disabled) {
        child.makeRequestToBeDisabled();
      }
      if (!this.__descriptionElementsInParentChain.size) {
        this.__storeAllDescriptionElementsInParentChain();
      }
      this.__linkParentMessages(child);
      this.validate({ clearCurrentResult: true });

      if (!child.modelValue) {
        const pVals = this.__pendingValues;
        if (pVals.modelValue && pVals.modelValue[child.name]) {
          // eslint-disable-next-line no-param-reassign
          child.modelValue = pVals.modelValue[child.name];
        } else if (pVals.serializedValue && pVals.serializedValue[child.name]) {
          // eslint-disable-next-line no-param-reassign
          child.serializedValue = pVals.serializedValue[child.name];
        }
      }
    }
@enhance FormRegistrarMixin: connects ValidateMixin and DisabledMixin.
On top of this, error messages of children are linked to their parents
@param {FormControl & {serializedValue:string|object}} child
@param {number} indexToInsertAt