diff --git a/core/modules/ckeditor5/src/Plugin/CKEditor5PluginDefinition.php b/core/modules/ckeditor5/src/Plugin/CKEditor5PluginDefinition.php index 7c84ff59b0bd73c72ba0cf495f8801fa807c73a7..1f6e96e64e89bd3576cf557f02e7594bfcb2c2e6 100644 --- a/core/modules/ckeditor5/src/Plugin/CKEditor5PluginDefinition.php +++ b/core/modules/ckeditor5/src/Plugin/CKEditor5PluginDefinition.php @@ -444,13 +444,18 @@ public function hasAdminLibrary(): bool { /** * Gets the list of elements and attributes this plugin allows to create/edit. * - * @return string[]|false - * FALSE if this plugin does not create/edit any elements or attributes. - * Otherwise a list. + * @return string[] + * A list of elements and attributes. * * @see \Drupal\ckeditor5\Annotation\DrupalAspectsOfCKEditor5Plugin::$elements + * + * @throws \LogicException + * When called on a plugin definition that has no elements. */ - public function getElements() { + public function getElements(): array { + if (!$this->hasElements()) { + throw new \LogicException('::getElements() should only be called if ::hasElements() returns TRUE.'); + } return $this->drupal['elements']; } @@ -498,7 +503,7 @@ public static function isCreatableElement(string $element): bool { * @see \Drupal\ckeditor5\Annotation\DrupalAspectsOfCKEditor5Plugin::$elements */ public function hasElements(): bool { - return $this->getElements() !== FALSE; + return $this->drupal['elements'] !== FALSE; } /**