src/Form/Form.php
public function attachInputFilterDefaults(InputFilterInterface $inputFilter, FieldsetInterface $fieldset)
    {
        parent::attachInputFilterDefaults($inputFilter, $fieldset);
        /* @var $inputFilter \Zend\InputFilter\InputFilter */
        foreach ($inputFilter->getInputs() as $name => $input) {
            if (!$input instanceof InputFilterInterface) {
                /* @var $input \Zend\InputFilter\Input */
                $required = $input->isRequired();
                $inputExists = $fieldset->has($name);
                if (!$inputExists && $required) {
                    $fieldsetName = '';
                    if ($fieldset->hasAttribute('name')) {
                        $fieldsetName = 'in Fieldset "' . $fieldset->getAttribute('name') . '" ';
                    }
                    throw new \RuntimeException('input for "' . $name . '" ' . $fieldsetName . 'is required but a input-field with this name is not defined');
                }
            }
        }
    }
public function attachInputFilterDefaults(InputFilterInterface $inputFilter, FieldsetInterface $fieldset)
    {
        parent::attachInputFilterDefaults($inputFilter, $fieldset);
        /* @var $inputFilter \Zend\InputFilter\InputFilter */
        foreach ($inputFilter->getInputs() as $name => $input) {
            if (!$input instanceof InputFilterInterface) {
                /* @var $input \Zend\InputFilter\Input */
                $required = $input->isRequired();
                $inputExists = $fieldset->has($name);
                if (!$inputExists && $required) {
                    $fieldsetName = '';
                    if ($fieldset->hasAttribute('name')) {
                        $fieldsetName = 'in Fieldset "' . $fieldset->getAttribute('name') . '" ';
                    }
                    throw new \RuntimeException('input for "' . $name . '" ' . $fieldsetName . 'is required but a input-field with this name is not defined');
                }
            }
        }
    }
reassurance, that no required inputFilter is set on a non-existing field, this mistake is otherwise hard to detect
there is still a lot to do on this issue
@param InputFilterInterface $inputFilter
@param FieldsetInterface $fieldset
@throws \RuntimeException