<p dir="auto">This happens if second parameter is not passed to <code class="notranslate">$this-&gt;container-&gt;get('form.factory')-&gt;create()</code>.</p>
<p dir="auto">I tried to create a test case for it in <code class="notranslate">Symfony\Component\Form\Tests\FormFactoryTest</code>, but I get <code class="notranslate">Symfony\Component\Form\Exception\FormException: Could not load type "text"</code>. Looks like there is no such type of tests, so probably some setup need to be done first.</p>
<p dir="auto">I think this is critical bug in forms, and it exists for a while now.</p>
<p dir="auto">Since the recent refactoring of the way default options are merged for a Form, setting a default value according to the value of another option does not work anymore for the hierarchy as the parent type will apply this default with its own default value even if the child type changed the default value. This is because the way the defaults are applied changed so the child type is applied only later.<br>
A good way to see this is to define a type setting a default value for the <code class="notranslate">data_class</code> property. The <code class="notranslate">empty_data</code> default value set by the FieldType won't be set properly in the form (we would expect getting a closure crating an instance of the class).<br>
This is a BC break and makes the type inheritance less powerful IMO.</p>
<p dir="auto">/cc @bschussek</p>