diff -u b/core/modules/inline_form_errors/src/FormElementDeterminer.php b/core/modules/inline_form_errors/src/FormElementDeterminer.php --- b/core/modules/inline_form_errors/src/FormElementDeterminer.php +++ b/core/modules/inline_form_errors/src/FormElementDeterminer.php @@ -68,8 +68,8 @@ $element_definitions = $this->elementInfoManager->getDefinitions(); if (!empty($element_definitions[$element_type])) { - $element = $this->elementInfoManager->createInstance($element_type); - return $element instanceof FormElementInterface; + $interfaces = class_implements($element_definitions[$element_type]['class']); + return isset($interfaces['Drupal\Core\Render\Element\FormElementInterface']); } return FALSE; diff -u b/core/modules/inline_form_errors/tests/src/Unit/FormElementDeterminerTest.php b/core/modules/inline_form_errors/tests/src/Unit/FormElementDeterminerTest.php --- b/core/modules/inline_form_errors/tests/src/Unit/FormElementDeterminerTest.php +++ b/core/modules/inline_form_errors/tests/src/Unit/FormElementDeterminerTest.php @@ -37,20 +37,10 @@ $element_info_manager->expects($this->any()) ->method('getDefinitions') ->willReturn([ - 'form_element_type' => ['form_element_definition'], - 'element_type' => ['element_definition'], + 'form_element_type' => ['class' => '\Drupal\Core\Render\Element\FormElement'], + 'element_type' => ['class' => '\Drupal\Core\Render\Element\RenderElement'], ]); - $element_info_manager->expects($this->at(1)) - ->method('createInstance') - ->with('form_element_type') - ->willReturn($this->getMock(FormElementInterface::class)); - - $element_info_manager->expects($this->at(3)) - ->method('createInstance') - ->with('element_type') - ->willReturn($this->getMock(ElementInterface::class)); - $form_element_determiner = new FormElementDeterminer($element_info_manager); // Test that an element implementing FormElementInterface is detected.