diff --git a/core/lib/Drupal/Core/Update/Form/UpdateScriptSelectionForm.php b/core/lib/Drupal/Core/Update/Form/UpdateScriptSelectionForm.php
index ce01146..8b002ae 100644
--- a/core/lib/Drupal/Core/Update/Form/UpdateScriptSelectionForm.php
+++ b/core/lib/Drupal/Core/Update/Form/UpdateScriptSelectionForm.php
@@ -92,7 +92,7 @@ public function buildForm(array $form, array &$form_state) {
       drupal_set_message(t('No pending updates.'));
       unset($form);
       $form['links'] = array(
-        '#theme' => 'links',
+        '#type' => 'links',
         '#links' => update_helpful_links(),
       );
 
diff --git a/core/modules/block/lib/Drupal/block/BlockListController.php b/core/modules/block/lib/Drupal/block/BlockListController.php
index 89a6191..6f93811 100644
--- a/core/modules/block/lib/Drupal/block/BlockListController.php
+++ b/core/modules/block/lib/Drupal/block/BlockListController.php
@@ -349,7 +349,7 @@ public function buildForm(array $form, array &$form_state) {
           '#type' => 'details',
           '#title' => $category,
           'content' => array(
-            '#theme' => 'links',
+            '#type' => 'links',
             '#links' => array(),
             '#attributes' => array(
               'class' => array(
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/area/ListingEmpty.php b/core/modules/node/lib/Drupal/node/Plugin/views/area/ListingEmpty.php
index 2d71c21..7060ab8 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/area/ListingEmpty.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/area/ListingEmpty.php
@@ -64,7 +64,7 @@ public function render($empty = FALSE) {
     $account = \Drupal::currentUser();
     if (!$empty || !empty($this->options['empty'])) {
       $element = array(
-        '#theme' => 'links',
+        '#type' => 'links',
         '#links' => array(
           array(
             'href' => 'node/add',
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/FunctionsTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/FunctionsTest.php
index 586e1eb..e7dcd4f 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/FunctionsTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/FunctionsTest.php
@@ -263,7 +263,7 @@ function testDrupalPreRenderLinks() {
     // Define the base array to be rendered, containing a variety of different
     // kinds of links.
     $base_array = array(
-      '#theme' => 'links',
+      '#type' => 'links',
       '#pre_render' => array('drupal_pre_render_links'),
       '#links' => array(
         'parent_link' => array(
@@ -272,7 +272,7 @@ function testDrupalPreRenderLinks() {
         ),
       ),
       'first_child' => array(
-        '#theme' => 'links',
+        '#type' => 'links',
         '#links' => array(
           // This should be rendered if 'first_child' is rendered separately,
           // but ignored if the parent is being rendered (since it duplicates
@@ -290,7 +290,7 @@ function testDrupalPreRenderLinks() {
       ),
       // This should always be rendered as part of the parent.
       'second_child' => array(
-        '#theme' => 'links',
+        '#type' => 'links',
         '#links' => array(
           'second_child_link' => array(
             'title' => 'Second child link',
@@ -301,7 +301,7 @@ function testDrupalPreRenderLinks() {
       // This should never be rendered, since the user does not have access to
       // it.
       'third_child' => array(
-        '#theme' => 'links',
+        '#type' => 'links',
         '#links' => array(
           'third_child_link' => array(
             'title' => 'Third child link',
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index 4a6005d..c04e6bc 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -542,7 +542,7 @@ function theme_system_themes_page($variables) {
       }
       else {
         $links = array(
-          '#theme' => 'links',
+          '#type' => 'links',
           '#links' => $theme->operations,
           '#attributes' => array(
             'class' => array('operations', 'clearfix'),
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index d85a30e..442e295 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -543,6 +543,12 @@ function system_element_info() {
   $types['value'] = array(
     '#input' => TRUE,
   );
+  $types['links'] = array(
+    '#theme' => 'links',
+    '#links' => array(),
+    '#attributes' => array('class' => array('links')),
+    '#heading' => array(),
+  );
   $types['link'] = array(
     '#pre_render' => array('drupal_pre_render_link'),
   );
diff --git a/core/modules/system/tests/modules/ajax_test/lib/Drupal/ajax_test/Controller/AjaxTestController.php b/core/modules/system/tests/modules/ajax_test/lib/Drupal/ajax_test/Controller/AjaxTestController.php
index ac0399f..cb398ce 100644
--- a/core/modules/system/tests/modules/ajax_test/lib/Drupal/ajax_test/Controller/AjaxTestController.php
+++ b/core/modules/system/tests/modules/ajax_test/lib/Drupal/ajax_test/Controller/AjaxTestController.php
@@ -65,7 +65,7 @@ public function dialog() {
 
     // Dialog behavior applied to links rendered by links.html.twig.
     $build['links'] = array(
-      '#theme' => 'links',
+      '#type' => 'links',
       '#links' => array(
         'link2' => array(
           'title' => 'Link 2 (modal)',
diff --git a/core/modules/views/views.api.php b/core/modules/views/views.api.php
index d48f789..a78423f 100644
--- a/core/modules/views/views.api.php
+++ b/core/modules/views/views.api.php
@@ -601,7 +601,7 @@ function hook_views_preview_info_alter(array &$rows, ViewExecutable $view) {
  * @param array $links
  *   A renderable array of links which will be displayed at the top of the
  *   view edit form. Each entry will be in a form suitable for
- *   '#theme' => 'links'.
+ *   '#type' => 'links'.
  * @param \Drupal\views\ViewExecutable $view
  *   The view object being edited.
  * @param string $display_id
diff --git a/core/update.php b/core/update.php
index 12ee78f..4150273 100644
--- a/core/update.php
+++ b/core/update.php
@@ -127,7 +127,7 @@ function update_results_page() {
   }
 
   $links = array(
-    '#theme' => 'links',
+    '#type' => 'links',
     '#links' => update_helpful_links(),
   );
   $output .= drupal_render($links);
