Loading core/lib/Drupal/Core/TypedData/DataReferenceBase.php +3 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,9 @@ public function setValue($value, $notify = TRUE) { * {@inheritdoc} */ public function getString() { if (!method_exists($this, 'getType')) { throw new \BadMethodCallException(get_class($this) . '::getType() not implemented'); } return (string) $this->getType() . ':' . $this->getTargetIdentifier(); } Loading core/phpstan-baseline.neon +0 −5 Original line number Diff line number Diff line Loading @@ -815,11 +815,6 @@ parameters: count: 1 path: lib/Drupal/Core/Theme/ThemeManager.php - message: "#^Call to an undefined method Drupal\\\\Core\\\\TypedData\\\\DataReferenceBase\\:\\:getType\\(\\)\\.$#" count: 1 path: lib/Drupal/Core/TypedData/DataReferenceBase.php - message: "#^Method Drupal\\\\Core\\\\TypedData\\\\ListDataDefinition\\:\\:setDataType\\(\\) should return static\\(Drupal\\\\Core\\\\TypedData\\\\ListDataDefinition\\) but return statement is missing\\.$#" count: 1 Loading core/tests/Drupal/KernelTests/Core/TypedData/TypedDataDefinitionTest.php +13 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ use Drupal\Core\TypedData\DataDefinitionInterface; use Drupal\Core\TypedData\DataReferenceDefinition; use Drupal\Core\TypedData\DataReferenceDefinitionInterface; use Drupal\Core\TypedData\DataReferenceInterface; use Drupal\Core\TypedData\ListDataDefinition; use Drupal\Core\TypedData\ListDataDefinitionInterface; use Drupal\Core\TypedData\MapDataDefinition; Loading Loading @@ -99,4 +100,16 @@ public function testDataReferences() { $this->assertEquals(serialize($language_reference_definition2), serialize($language_reference_definition)); } /** * Tests getString() throws exception when getType() is not implemented. */ public function testNotImplementedGetType() { $language_reference_definition = DataReferenceDefinition::create('language'); $language_reference = $this->typedDataManager->create($language_reference_definition); $this->assertInstanceOf(DataReferenceInterface::class, $language_reference); $this->expectException(\BadMethodCallException::class); $this->expectExceptionMessageMatches('/getType\(\) not implemented/'); $language_reference->getString(); } } Loading
core/lib/Drupal/Core/TypedData/DataReferenceBase.php +3 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,9 @@ public function setValue($value, $notify = TRUE) { * {@inheritdoc} */ public function getString() { if (!method_exists($this, 'getType')) { throw new \BadMethodCallException(get_class($this) . '::getType() not implemented'); } return (string) $this->getType() . ':' . $this->getTargetIdentifier(); } Loading
core/phpstan-baseline.neon +0 −5 Original line number Diff line number Diff line Loading @@ -815,11 +815,6 @@ parameters: count: 1 path: lib/Drupal/Core/Theme/ThemeManager.php - message: "#^Call to an undefined method Drupal\\\\Core\\\\TypedData\\\\DataReferenceBase\\:\\:getType\\(\\)\\.$#" count: 1 path: lib/Drupal/Core/TypedData/DataReferenceBase.php - message: "#^Method Drupal\\\\Core\\\\TypedData\\\\ListDataDefinition\\:\\:setDataType\\(\\) should return static\\(Drupal\\\\Core\\\\TypedData\\\\ListDataDefinition\\) but return statement is missing\\.$#" count: 1 Loading
core/tests/Drupal/KernelTests/Core/TypedData/TypedDataDefinitionTest.php +13 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ use Drupal\Core\TypedData\DataDefinitionInterface; use Drupal\Core\TypedData\DataReferenceDefinition; use Drupal\Core\TypedData\DataReferenceDefinitionInterface; use Drupal\Core\TypedData\DataReferenceInterface; use Drupal\Core\TypedData\ListDataDefinition; use Drupal\Core\TypedData\ListDataDefinitionInterface; use Drupal\Core\TypedData\MapDataDefinition; Loading Loading @@ -99,4 +100,16 @@ public function testDataReferences() { $this->assertEquals(serialize($language_reference_definition2), serialize($language_reference_definition)); } /** * Tests getString() throws exception when getType() is not implemented. */ public function testNotImplementedGetType() { $language_reference_definition = DataReferenceDefinition::create('language'); $language_reference = $this->typedDataManager->create($language_reference_definition); $this->assertInstanceOf(DataReferenceInterface::class, $language_reference); $this->expectException(\BadMethodCallException::class); $this->expectExceptionMessageMatches('/getType\(\) not implemented/'); $language_reference->getString(); } }