Skip to content

Commit 6015539

Browse files
committed
Allow \Drupal\Core\Field\EntityReferenceFieldItemListInterface::referencedEntities to work with generic
1 parent 480245d commit 6015539

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

stubs/Drupal/Core/Field/EntityReferenceFieldItemListInterface.stub

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,9 @@ use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem;
1313
*/
1414
interface EntityReferenceFieldItemListInterface extends FieldItemListInterface {
1515

16+
/**
17+
* @return array<int, T>
18+
*/
19+
public function referencedEntities();
20+
1621
}

tests/fixtures/drupal/modules/phpstan_fixtures/src/Entity/ReflectionEntityTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
/**
1111
* @property \Drupal\Core\Field\EntityReferenceFieldItemListInterface $user_id
12+
* @property \Drupal\Core\Field\EntityReferenceFieldItemListInterface<\Drupal\entity_test\Entity\EntityTest> $related
1213
*/
1314
final class ReflectionEntityTest extends ContentEntityBase {
1415

@@ -34,6 +35,14 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type)
3435
'placeholder' => '',
3536
],
3637
]);
38+
39+
$fields['related'] = BaseFieldDefinition::create('entity_reference')
40+
->setLabel(t('Related entities'))
41+
->setDescription(t('The IDs of the related entities.'))
42+
->setSetting('target_type', 'entity_test')
43+
->setSetting('handler', 'default')
44+
->setTranslatable(TRUE)
45+
->setDisplayConfigurable('form', FALSE);
3746
return $fields;
3847
}
3948

tests/src/Type/data/entity-properties.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@
1111

1212
$entity = ReflectionEntityTest::create();
1313
assertType('Drupal\Core\Field\EntityReferenceFieldItemListInterface', $entity->user_id);
14+
assertType('Drupal\Core\Field\EntityReferenceFieldItemListInterface<Drupal\entity_test\Entity\EntityTest>', $entity->related);
15+
// Value of array is derived from 'related' generic.
16+
assertType('array<int, Drupal\entity_test\Entity\EntityTest>', $entity->related->referencedEntities());

0 commit comments

Comments
 (0)