diff --git a/core/lib/Drupal/Component/Annotation/Plugin.php b/core/lib/Drupal/Component/Annotation/Plugin.php
index 115e94b..bfb7640 100644
--- a/core/lib/Drupal/Component/Annotation/Plugin.php
+++ b/core/lib/Drupal/Component/Annotation/Plugin.php
@@ -36,13 +36,18 @@ class Plugin implements AnnotationInterface {
    * classed annotations that were used.
    */
   public function __construct($values) {
-    $reflection = new \ReflectionClass($this);
-    // Only keep actual default values by ignoring NULL values.
-    $defaults = array_filter($reflection->getDefaultProperties(), function ($value) {
-      return $value !== NULL;
-    });
-    $parsed_values = $this->parse($values);
-    $this->definition = NestedArray::mergeDeep($defaults, $parsed_values);
+    if (isset($values['derivative_id'])) {
+      $values['id'] = $values['derivative_id'];
+      $this->definition = $this->parse($values);
+    }
+    else {
+      $reflection = new \ReflectionClass($this);
+      // Only keep actual default values by ignoring NULL values.
+      $defaults = array_filter($reflection->getDefaultProperties(), function ($value) {
+        return $value !== NULL;
+      });
+      $this->definition = NestedArray::mergeDeep($defaults, $this->parse($values));
+    }
   }
 
   /**
diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/views/row/CommentRow.php b/core/modules/comment/lib/Drupal/comment/Plugin/views/row/CommentRow.php
index 2d34728..6612a90 100644
--- a/core/modules/comment/lib/Drupal/comment/Plugin/views/row/CommentRow.php
+++ b/core/modules/comment/lib/Drupal/comment/Plugin/views/row/CommentRow.php
@@ -13,7 +13,7 @@
  * Plugin which performs a comment_view on the resulting object.
  *
  * @ViewsRow(
- *   id = "entity:comment",
+ *   derivative_id = "entity:comment",
  * )
  */
 class CommentRow extends EntityRow {
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/row/NodeRow.php b/core/modules/node/lib/Drupal/node/Plugin/views/row/NodeRow.php
index de71343..0ffdf38 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/row/NodeRow.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/row/NodeRow.php
@@ -17,7 +17,7 @@
  * @ingroup views_row_plugins
  *
  * @ViewsRow(
- *   id = "entity:node",
+ *   derivative_id = "entity:node",
  * )
  */
 class NodeRow extends EntityRow {
diff --git a/core/modules/user/lib/Drupal/user/Plugin/views/row/UserRow.php b/core/modules/user/lib/Drupal/user/Plugin/views/row/UserRow.php
index c8db406..48f0a11 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/views/row/UserRow.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/views/row/UserRow.php
@@ -15,7 +15,7 @@
  * @ingroup views_row_plugins
  *
  * @ViewsRow(
- *   id = "entity:user",
+ *   derivative_id = "entity:user",
  * )
  */
 class UserRow extends EntityRow {
