diff --git a/core/includes/install.inc b/core/includes/install.inc
index e247378..351b7ba 100644
--- a/core/includes/install.inc
+++ b/core/includes/install.inc
@@ -107,6 +107,7 @@ function drupal_install_profile_distribution_name() {
   // At all other times, we load the profile via standard methods.
   else {
     $profile = drupal_get_profile();
+    \Drupal::moduleHandler()->load('system');
     $info = system_get_info('module', $profile);
   }
   return isset($info['distribution']['name']) ? $info['distribution']['name'] : 'Drupal';
diff --git a/core/includes/update.inc b/core/includes/update.inc
index e6fe7fa..78a0d8e 100644
--- a/core/includes/update.inc
+++ b/core/includes/update.inc
@@ -44,6 +44,7 @@ function update_check_incompatibility($name, $type = 'module') {
     // We need to do a full rebuild here to make sure the database reflects any
     // code changes that were made in the filesystem before the update script
     // was initiated.
+    \Drupal::moduleHandler()->load('system');
     $themes = system_rebuild_theme_data();
     $modules = system_rebuild_module_data();
   }
diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php
index bc36c15..9543234 100644
--- a/core/lib/Drupal/Core/DrupalKernel.php
+++ b/core/lib/Drupal/Core/DrupalKernel.php
@@ -457,7 +457,7 @@ public function preHandle(Request $request) {
     $this->loadLegacyIncludes();
 
     // Load all enabled modules.
-    $this->container->get('module_handler')->loadAll();
+    //$this->container->get('module_handler')->loadAll();
 
     // Register stream wrappers.
     $this->container->get('stream_wrapper_manager')->register();
diff --git a/core/lib/Drupal/Core/Extension/ModuleHandler.php b/core/lib/Drupal/Core/Extension/ModuleHandler.php
index c1eee71..e24f068 100644
--- a/core/lib/Drupal/Core/Extension/ModuleHandler.php
+++ b/core/lib/Drupal/Core/Extension/ModuleHandler.php
@@ -377,6 +377,7 @@ public function implementsHook($module, $hook) {
    * {@inheritdoc}
    */
   public function invoke($module, $hook, array $args = array()) {
+    $this->loadAll();
     if (!$this->implementsHook($module, $hook)) {
       return;
     }
@@ -513,9 +514,11 @@ protected function getImplementationInfo($hook) {
       $this->verified = array();
       if ($cache = $this->cacheBackend->get('module_implements')) {
         $this->implementations = $cache->data;
+        $this->loadAll();
       }
     }
     if (!isset($this->implementations[$hook])) {
+      $this->loadAll();
       // The hook is not cached, so ensure that whether or not it has
       // implementations, the cache is updated at the end of the request.
       $this->cacheNeedsWriting = TRUE;
@@ -525,6 +528,7 @@ protected function getImplementationInfo($hook) {
       $this->verified[$hook] = TRUE;
     }
     elseif (!isset($this->verified[$hook])) {
+      $this->loadAll();
       if (!$this->verifyImplementations($this->implementations[$hook], $hook)) {
         // One or more of the implementations did not exist and need to be
         // removed in the cache.
diff --git a/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php b/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
index 84426c4..e89b1aa 100644
--- a/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
+++ b/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
@@ -212,6 +212,7 @@ protected function prepare(array $main_content, Request $request, RouteMatchInte
 
     // $page is now fully built. Find all non-empty page regions, and add a
     // theme wrapper function that allows them to be consistently themed.
+    \Drupal::moduleHandler()->load('system');
     $regions = system_region_list(\Drupal::theme()->getActiveTheme()->getName());
     foreach (array_keys($regions) as $region) {
       if (!empty($page[$region])) {
diff --git a/core/lib/Drupal/Core/Theme/ThemeManager.php b/core/lib/Drupal/Core/Theme/ThemeManager.php
index a100374..4355e78 100644
--- a/core/lib/Drupal/Core/Theme/ThemeManager.php
+++ b/core/lib/Drupal/Core/Theme/ThemeManager.php
@@ -138,7 +138,7 @@ protected function theme($hook, $variables = array()) {
     // theme registry to work with, and therefore cannot process the theme
     // request properly. See also \Drupal\Core\Theme\Registry::get().
     if (!$this->moduleHandler->isLoaded() && !defined('MAINTENANCE_MODE')) {
-      throw new \Exception(t('_theme() may not be called until all modules are loaded.'));
+      //throw new \Exception(t('_theme() may not be called until all modules are loaded.'));
     }
 
     $theme_registry = $this->themeRegistry->getRuntime();
diff --git a/core/modules/aggregator/aggregator.module b/core/modules/aggregator/aggregator.module
index 42002b1..2950eb2 100644
--- a/core/modules/aggregator/aggregator.module
+++ b/core/modules/aggregator/aggregator.module
@@ -11,6 +11,8 @@
 
 /**
  * Denotes that a feed's items should never expire.
+ *
+ * @deprecated Use \Drupal\aggregator\Entity\Feed::CLEAR_NEVER instead.
  */
 const AGGREGATOR_CLEAR_NEVER = 0;
 
diff --git a/core/modules/aggregator/src/Entity/Feed.php b/core/modules/aggregator/src/Entity/Feed.php
index 6f3d2e2..66a99a0 100644
--- a/core/modules/aggregator/src/Entity/Feed.php
+++ b/core/modules/aggregator/src/Entity/Feed.php
@@ -51,6 +51,11 @@
 class Feed extends ContentEntityBase implements FeedInterface {
 
   /**
+   * Denotes that a feed's items should never expire.
+   */
+  const CLEAR_NEVER = 0;
+
+  /**
    * Implements Drupal\Core\Entity\EntityInterface::label().
    */
   public function label() {
@@ -177,7 +182,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
 
     $intervals = array(900, 1800, 3600, 7200, 10800, 21600, 32400, 43200, 64800, 86400, 172800, 259200, 604800, 1209600, 2419200);
     $period = array_map(array(\Drupal::service('date.formatter'), 'formatInterval'), array_combine($intervals, $intervals));
-    $period[AGGREGATOR_CLEAR_NEVER] = t('Never');
+    $period[static::CLEAR_NEVER] = t('Never');
 
     $fields['refresh'] = BaseFieldDefinition::create('list_integer')
       ->setLabel(t('Update interval'))
diff --git a/core/modules/block/src/BlockRepository.php b/core/modules/block/src/BlockRepository.php
index 485a66f..8f44a97 100755
--- a/core/modules/block/src/BlockRepository.php
+++ b/core/modules/block/src/BlockRepository.php
@@ -53,6 +53,7 @@ public function __construct(EntityManagerInterface $entity_manager, ThemeManager
    *   An array of human-readable region names keyed by machine name.
    */
   protected function getRegionNames() {
+    \Drupal::moduleHandler()->load('system');
     return system_region_list($this->getTheme());
   }
 
diff --git a/core/modules/filter/src/Controller/FilterController.php b/core/modules/filter/src/Controller/FilterController.php
index a921cb0..ed1b935 100644
--- a/core/modules/filter/src/Controller/FilterController.php
+++ b/core/modules/filter/src/Controller/FilterController.php
@@ -28,6 +28,8 @@ class FilterController {
   function filterTips(FilterFormatInterface $filter_format = NULL) {
     $tips = $filter_format ? $filter_format->id() : -1;
 
+    \Drupal::moduleHandler()->load('filter');
+
     $build = array(
       '#theme' => 'filter_tips',
       '#long' => TRUE,
diff --git a/core/modules/filter/src/FilterFormatListBuilder.php b/core/modules/filter/src/FilterFormatListBuilder.php
index 0003cfa..00b1743 100644
--- a/core/modules/filter/src/FilterFormatListBuilder.php
+++ b/core/modules/filter/src/FilterFormatListBuilder.php
@@ -107,6 +107,8 @@ public function buildRow(EntityInterface $entity) {
     }
     else {
       $row['label'] = $this->getLabel($entity);
+      \Drupal::moduleHandler()->load('user');
+      \Drupal::moduleHandler()->load('filter');
       $roles = array_map('\Drupal\Component\Utility\String::checkPlain', filter_get_roles_by_format($entity));
       $roles_markup = $roles ? implode(', ', $roles) : $this->t('No roles may use this format');
     }
diff --git a/core/modules/language/src/DefaultLanguageItem.php b/core/modules/language/src/DefaultLanguageItem.php
index 0ef14e2..6438554 100644
--- a/core/modules/language/src/DefaultLanguageItem.php
+++ b/core/modules/language/src/DefaultLanguageItem.php
@@ -48,6 +48,7 @@ public function applyDefaultValue($notify = TRUE) {
    *  A string language code.
    */
   public function getDefaultLangcode(EntityInterface $entity) {
+    \Drupal::moduleHandler()->load('language');
     return language_get_default_langcode($entity->getEntityTypeId(), $entity->bundle());
   }
 
diff --git a/core/modules/language/src/Tests/LanguageConfigurationElementTest.php b/core/modules/language/src/Tests/LanguageConfigurationElementTest.php
index c98ef25..21482df 100644
--- a/core/modules/language/src/Tests/LanguageConfigurationElementTest.php
+++ b/core/modules/language/src/Tests/LanguageConfigurationElementTest.php
@@ -30,6 +30,7 @@ class LanguageConfigurationElementTest extends WebTestBase {
    * Tests the language settings have been saved.
    */
   public function testLanguageConfigurationElement() {
+    \Drupal::moduleHandler()->load('language');
     $this->drupalGet('language-tests/language_configuration_element');
     $edit['lang_configuration[langcode]'] = 'current_interface';
     $edit['lang_configuration[language_alterable]'] = FALSE;
diff --git a/core/modules/locale/src/Form/ExportForm.php b/core/modules/locale/src/Form/ExportForm.php
index f9b6361..730fb9a 100644
--- a/core/modules/locale/src/Form/ExportForm.php
+++ b/core/modules/locale/src/Form/ExportForm.php
@@ -60,6 +60,7 @@ public function getFormID() {
   public function buildForm(array $form, FormStateInterface $form_state) {
     $languages = $this->languageManager->getLanguages();
     $language_options = array();
+    \Drupal::moduleHandler()->load('locale');
     foreach ($languages as $langcode => $language) {
       if ($langcode != 'en' || locale_translate_english()) {
         $language_options[$langcode] = $language->getName();
diff --git a/core/modules/locale/src/Form/ImportForm.php b/core/modules/locale/src/Form/ImportForm.php
index e3448b3..514f482 100644
--- a/core/modules/locale/src/Form/ImportForm.php
+++ b/core/modules/locale/src/Form/ImportForm.php
@@ -78,6 +78,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     // Initialize a language list to the ones available, including English if we
     // are to translate Drupal to English as well.
     $existing_languages = array();
+    \Drupal::moduleHandler()->load('locale');
     foreach ($languages as $langcode => $language) {
       if ($langcode != 'en' || locale_translate_english()) {
         $existing_languages[$langcode] = $language->getName();
diff --git a/core/modules/locale/src/Form/TranslateFormBase.php b/core/modules/locale/src/Form/TranslateFormBase.php
index b894f17..d99fc8d 100644
--- a/core/modules/locale/src/Form/TranslateFormBase.php
+++ b/core/modules/locale/src/Form/TranslateFormBase.php
@@ -163,6 +163,7 @@ protected function translateFilters() {
     $this->languageManager->reset();
     $languages = $this->languageManager->getLanguages();
     $language_options = array();
+    \Drupal::moduleHandler()->load('locale');
     foreach ($languages as $langcode => $language) {
       if ($langcode != 'en' || locale_translate_english()) {
         $language_options[$langcode] = $language->getName();
diff --git a/core/modules/node/src/Entity/NodeType.php b/core/modules/node/src/Entity/NodeType.php
index 238ae8f..441831a 100644
--- a/core/modules/node/src/Entity/NodeType.php
+++ b/core/modules/node/src/Entity/NodeType.php
@@ -86,7 +86,7 @@ class NodeType extends ConfigEntityBundleBase implements NodeTypeInterface {
    *
    * @var int
    */
-  protected $preview_mode = DRUPAL_OPTIONAL;
+  protected $preview_mode = 1;
 
   /**
    * Display setting for author and date Submitted by post information.
diff --git a/core/modules/simpletest/src/Form/SimpletestTestForm.php b/core/modules/simpletest/src/Form/SimpletestTestForm.php
index 03f16f5..af62fb7 100644
--- a/core/modules/simpletest/src/Form/SimpletestTestForm.php
+++ b/core/modules/simpletest/src/Form/SimpletestTestForm.php
@@ -104,6 +104,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     ];
 
     // Generate the list of tests arranged by group.
+    \Drupal::moduleHandler()->load('simpletest');
     $groups = simpletest_test_get_all();
     foreach ($groups as $group => $tests) {
       $form['tests'][$group] = array(
diff --git a/core/modules/system/tests/modules/ajax_test/src/Controller/AjaxTestController.php b/core/modules/system/tests/modules/ajax_test/src/Controller/AjaxTestController.php
index 928b84e..2110b8c 100644
--- a/core/modules/system/tests/modules/ajax_test/src/Controller/AjaxTestController.php
+++ b/core/modules/system/tests/modules/ajax_test/src/Controller/AjaxTestController.php
@@ -83,6 +83,7 @@ public function order() {
    * @todo Remove ajax_test_error().
    */
   public function renderError() {
+    \Drupal::moduleHandler()->load('ajax_test');
     return ajax_test_error();
   }
 
@@ -183,6 +184,7 @@ public function dialog() {
    * @todo Remove ajax_test_dialog_close().
    */
   public function dialogClose() {
+    \Drupal::moduleHandler()->load('ajax_test');
     return ajax_test_dialog_close();
   }
 
diff --git a/core/modules/system/tests/modules/batch_test/src/Controller/BatchTestController.php b/core/modules/system/tests/modules/batch_test/src/Controller/BatchTestController.php
index 19ea6e9..d48d9e0 100644
--- a/core/modules/system/tests/modules/batch_test/src/Controller/BatchTestController.php
+++ b/core/modules/system/tests/modules/batch_test/src/Controller/BatchTestController.php
@@ -34,6 +34,7 @@ public function testRedirect() {
    *   A redirect response if the batch is progressive. No return value otherwise.
    */
   public function testLargePercentage() {
+    \Drupal::moduleHandler()->load('batch_test');
     batch_test_stack(NULL, TRUE);
 
     batch_set(_batch_test_batch_5());
@@ -65,6 +66,7 @@ public function testNestedDrupalFormSubmit($value = 1) {
    *   A redirect response if the batch is progressive. No return value otherwise.
    */
   public function testNoForm() {
+    \Drupal::moduleHandler()->load('batch_test');
     batch_test_stack(NULL, TRUE);
 
     batch_set(_batch_test_batch_1());
@@ -103,6 +105,7 @@ function testProgrammatic($value = 1) {
    *   A redirect response if the batch is progressive. No return value otherwise.
    */
   public function testThemeBatch() {
+    \Drupal::moduleHandler()->load('batch_test');
     batch_test_stack(NULL, TRUE);
     $batch = array(
       'operations' => array(
diff --git a/core/modules/system/tests/modules/database_test/database_test.module b/core/modules/system/tests/modules/database_test/database_test.module
index d065453..b5ee9c8 100644
--- a/core/modules/system/tests/modules/database_test/database_test.module
+++ b/core/modules/system/tests/modules/database_test/database_test.module
@@ -1,7 +1,6 @@
 <?php
 
 use Drupal\Core\Database\Query\AlterableInterface;
-use Symfony\Component\HttpFoundation\JsonResponse;
 
 /**
  * Implements hook_query_alter().
diff --git a/core/modules/system/tests/modules/entity_test/src/Routing/EntityTestRoutes.php b/core/modules/system/tests/modules/entity_test/src/Routing/EntityTestRoutes.php
index 53c1978..f2e3aa9 100644
--- a/core/modules/system/tests/modules/entity_test/src/Routing/EntityTestRoutes.php
+++ b/core/modules/system/tests/modules/entity_test/src/Routing/EntityTestRoutes.php
@@ -21,6 +21,7 @@ class EntityTestRoutes {
    *   An array of route objects.
    */
   public function routes() {
+    \Drupal::moduleHandler()->load('entity_test');
     $types = entity_test_entity_types(ENTITY_TEST_TYPES_ROUTING);
     $types[] = 'entity_test_string_id';
     $types[] = 'entity_test_no_id';
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestTableSelectFormBase.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestTableSelectFormBase.php
index f618c92..dcc135b 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestTableSelectFormBase.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestTableSelectFormBase.php
@@ -29,6 +29,7 @@
    *   A form with a tableselect element and a submit button.
    */
   function tableselectFormBuilder($form, FormStateInterface $form_state, $element_properties) {
+    \Drupal::moduleHandler()->load('form_test');
     list($header, $options) = _form_test_tableselect_get_data();
 
     $form['tableselect'] = $element_properties;
diff --git a/core/modules/system/tests/modules/menu_test/menu_test.module b/core/modules/system/tests/modules/menu_test/menu_test.module
index ec916cb..0ba540d 100644
--- a/core/modules/system/tests/modules/menu_test/menu_test.module
+++ b/core/modules/system/tests/modules/menu_test/menu_test.module
@@ -81,32 +81,6 @@ function menu_test_menu_local_tasks_alter(&$data, $route_name) {
 }
 
 /**
- * Page callback: Tests the theme negotiation functionality.
- *
- * @param bool $inherited
- *   (optional) TRUE when the requested page is intended to inherit
- *   the theme of its parent.
- *
- * @return string
- *   A string describing the requested custom theme and actual theme being used
- *   for the current page request.
- *
- * @see menu_test_menu().
- *
- * @deprecated Use \Drupal\menu_test\Controller\MenuTestController::themePage()
- */
-function menu_test_theme_page_callback($inherited = FALSE) {
-  $theme_key = \Drupal::theme()->getActiveTheme()->getName();
-  // Now we check what the theme negotiator service returns.
-  $active_theme = \Drupal::service('theme.negotiator')->determineActiveTheme(\Drupal::routeMatch());
-  $output = "Active theme: $active_theme. Actual theme: $theme_key.";
-  if ($inherited) {
-    $output .= ' Theme negotiation inheritance is being tested.';
-  }
-  return ['#markup' => $output];
-}
-
-/**
  * Sets a static variable for the testMenuName() test.
  *
  * Used to change the menu_name parameter of a menu.
@@ -125,19 +99,3 @@ function menu_test_menu_name($new_name = '') {
   return $menu_name;
 }
 
-/**
- * Title callback: Concatenates the title and case number.
- *
- * @param string $title
- *   Title string.
- * @param int $case_number
- *   (optional) The current case number which it tests (defaults to 3).
- *
- * @return string
- *   A string containing the title and case number.
- *
- * @see menu_test_menu().
- */
-function menu_test_title_callback($title, $case_number = 3) {
-  return t($title) . ' - Case ' . $case_number;
-}
diff --git a/core/modules/system/tests/modules/menu_test/src/Controller/MenuTestController.php b/core/modules/system/tests/modules/menu_test/src/Controller/MenuTestController.php
index eb7bec5..ae290cd 100644
--- a/core/modules/system/tests/modules/menu_test/src/Controller/MenuTestController.php
+++ b/core/modules/system/tests/modules/menu_test/src/Controller/MenuTestController.php
@@ -22,7 +22,6 @@ public function menuTestCallback() {
     return ['#markup' => 'This is the menuTestCallback content.'];
   }
 
-
   /**
    * A title callback method for test routes.
    *
@@ -40,10 +39,27 @@ public function titleCallback(array $_title_arguments = array(), $_title = '') {
   }
 
   /**
-   * @todo Remove menu_test_theme_page_callback().
+   * Page callback: Tests the theme negotiation functionality.
+   *
+   * @param bool $inherited
+   *   (optional) TRUE when the requested page is intended to inherit
+   *   the theme of its parent.
+   *
+   * @return string
+   *   A string describing the requested custom theme and actual theme being used
+   *   for the current page request.
+   *
+   * @see menu_test.routing.yml
    */
   public function themePage($inherited) {
-    return menu_test_theme_page_callback($inherited);
+    $theme_key = \Drupal::theme()->getActiveTheme()->getName();
+    // Now we check what the theme negotiator service returns.
+    $active_theme = \Drupal::service('theme.negotiator')->determineActiveTheme(\Drupal::routeMatch());
+    $output = "Active theme: $active_theme. Actual theme: $theme_key.";
+    if ($inherited) {
+      $output .= ' Theme negotiation inheritance is being tested.';
+    }
+    return $output;
   }
 
   /**
diff --git a/core/modules/system/tests/modules/module_test/module_test.module b/core/modules/system/tests/modules/module_test/module_test.module
index 92f038b..ee56fc3 100644
--- a/core/modules/system/tests/modules/module_test/module_test.module
+++ b/core/modules/system/tests/modules/module_test/module_test.module
@@ -79,19 +79,6 @@ function module_test_hook_dynamic_loading_invoke() {
 }
 
 /**
- * Page callback for 'hook dynamic loading' test.
- *
- * If the hook is dynamically loaded correctly, the menu callback should
- * return 'success!'.
- *
- * @deprecated \Drupal\module_test\Controller\ModuleTestController::hookDynamicLoadingInvokeAll()
- */
-function module_test_hook_dynamic_loading_invoke_all() {
-  $result = \Drupal::moduleHandler()->invokeAll('test_hook');
-  return $result['module_test'];
-}
-
-/**
  * Load function used by module_test_hook_dynamic_loading_invoke_all_during_load().
  *
  * @see module_test_menu().
@@ -102,23 +89,6 @@ function module_test_load($param) {
 }
 
 /**
- * Page callback for 'class loading' test.
- *
- * This module does not have a dependency on module_autoload_test.module. If
- * that module is enabled, this function should return the string
- * 'Drupal\\module_autoload_test\\SomeClass::testMethod() was invoked.'. If
- * that module is not enabled, this function should return nothing.
- *
- * @deprecated \Drupal\module_test\Controller\ModuleTestController::testClassLoading()
- */
-function module_test_class_loading() {
-  if (class_exists('Drupal\module_autoload_test\SomeClass')) {
-    $obj = new Drupal\module_autoload_test\SomeClass();
-    return $obj->testMethod();
-  }
-}
-
-/**
  * Implements hook_modules_installed().
  */
 function module_test_modules_installed($modules) {
diff --git a/core/modules/system/tests/modules/module_test/src/Controller/ModuleTestController.php b/core/modules/system/tests/modules/module_test/src/Controller/ModuleTestController.php
index 3a2532e..856f23b 100644
--- a/core/modules/system/tests/modules/module_test/src/Controller/ModuleTestController.php
+++ b/core/modules/system/tests/modules/module_test/src/Controller/ModuleTestController.php
@@ -6,6 +6,7 @@
  */
 
 namespace Drupal\module_test\Controller;
+use Drupal\module_autoload_test\SomeClass;
 
 /**
  * Controller routines for module_test routes.
@@ -13,24 +14,40 @@
 class ModuleTestController {
 
   /**
-   * @todo Remove module_test_hook_dynamic_loading_invoke().
+   * Page callback for 'hook dynamic loading' test.
+   *
+   * If the hook is dynamically loaded correctly, the menu callback should
+   * return 'success!'.
    */
   public function hookDynamicLoadingInvoke() {
-    return module_test_hook_dynamic_loading_invoke();
+    $result = \Drupal::moduleHandler()->invoke('module_test', 'test_hook');
+    return $result['module_test'];
   }
 
   /**
-   * @todo Remove module_test_hook_dynamic_loading_invoke_all().
+   * Page callback for 'hook dynamic loading' test.
+   *
+   * If the hook is dynamically loaded correctly, the menu callback should
+   * return 'success!'.
    */
   public function hookDynamicLoadingInvokeAll() {
-    return module_test_hook_dynamic_loading_invoke_all();
+    $result = \Drupal::moduleHandler()->invokeAll('test_hook');
+    return $result['module_test'];
   }
 
   /**
-   * @todo Remove module_test_class_loading().
+   * Page callback for 'class loading' test.
+   *
+   * This module does not have a dependency on module_autoload_test.module. If
+   * that module is enabled, this function should return the string
+   * 'Drupal\\module_autoload_test\\SomeClass::testMethod() was invoked.'. If
+   * that module is not enabled, this function should return nothing.
    */
   public function testClassLoading() {
-    return ['#markup' => module_test_class_loading()];
+    if (class_exists('Drupal\module_autoload_test\SomeClass')) {
+      $obj = new SomeClass();
+      return ['#markup' => $obj->testMethod()];
+    }
   }
 
 }
diff --git a/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php b/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
index 492f425..2856426 100644
--- a/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
+++ b/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
@@ -79,6 +79,7 @@ public function drupalSetMessageTest() {
    * @todo Remove system_test_lock_acquire().
    */
   public function lockAcquire() {
+    \Drupal::moduleHandler()->load('system_test');
     return system_test_lock_acquire();
   }
 
@@ -86,6 +87,7 @@ public function lockAcquire() {
    * @todo Remove system_test_lock_exit().
    */
   public function lockExit() {
+    \Drupal::moduleHandler()->load('system_test');
     return system_test_lock_exit();
   }
 
@@ -135,6 +137,7 @@ public static function preRenderCacheTags($elements) {
    * @todo Remove system_test_authorize_init_page().
    */
   public function authorizeInit($page_title) {
+    \Drupal::moduleHandler()->load('system_test');
     return system_test_authorize_init_page($page_title);
   }
 
@@ -154,6 +157,7 @@ public function setHeader(Request $request) {
    * @todo Remove system_test_page_shutdown_functions().
    */
   public function shutdownFunctions($arg1, $arg2) {
+    \Drupal::moduleHandler()->load('system_test');
     system_test_page_shutdown_functions($arg1, $arg2);
     // If using PHP-FPM then fastcgi_finish_request() will have been fired
     // preventing further output to the browser which means that the escaping of
diff --git a/core/modules/system/tests/modules/test_page_test/src/Controller/TestPageTestController.php b/core/modules/system/tests/modules/test_page_test/src/Controller/TestPageTestController.php
index 76ac189..9f5e771 100644
--- a/core/modules/system/tests/modules/test_page_test/src/Controller/TestPageTestController.php
+++ b/core/modules/system/tests/modules/test_page_test/src/Controller/TestPageTestController.php
@@ -16,7 +16,15 @@ class TestPageTestController {
    * @todo Remove test_page_test_page().
    */
   public function testPage() {
-    return test_page_test_page();
+    $attached['js'][] = array(
+      'data' => array('test-setting' => 'azAZ09();.,\\\/-_{}'),
+      'type' => 'setting',
+    );
+    return array(
+      '#title' => t('Test page'),
+      '#markup' => t('Test page text.'),
+      '#attached' => $attached,
+    );
   }
 
 }
diff --git a/core/modules/system/tests/modules/test_page_test/test_page_test.module b/core/modules/system/tests/modules/test_page_test/test_page_test.module
deleted file mode 100644
index f2967cf..0000000
--- a/core/modules/system/tests/modules/test_page_test/test_page_test.module
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * Page callback: Returns a test page and sets the title.
- *
- * @deprecated Use \Drupal\test_page_test\Controller\TestPageTestController::testPage()
- */
-function test_page_test_page() {
-  $attached['drupalSettings']['test-setting'] = 'azAZ09();.,\\\/-_{}';
-  return array(
-    '#title' => t('Test page'),
-    '#markup' => t('Test page text.'),
-    '#attached' => $attached,
-  );
-}
diff --git a/core/modules/system/tests/modules/url_alter_test/src/PathProcessorTest.php b/core/modules/system/tests/modules/url_alter_test/src/PathProcessorTest.php
index 644dd49..2c8185c 100644
--- a/core/modules/system/tests/modules/url_alter_test/src/PathProcessorTest.php
+++ b/core/modules/system/tests/modules/url_alter_test/src/PathProcessorTest.php
@@ -9,6 +9,7 @@
 
 use Drupal\Core\PathProcessor\InboundPathProcessorInterface;
 use Drupal\Core\PathProcessor\OutboundPathProcessorInterface;
+use Drupal\user\Entity\User;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -22,7 +23,11 @@ class PathProcessorTest implements InboundPathProcessorInterface, OutboundPathPr
   public function processInbound($path, Request $request) {
     // Rewrite user/username to user/uid.
     if (preg_match('!^user/([^/]+)(/.*)?!', $path, $matches)) {
-      if ($account = user_load_by_name($matches[1])) {
+      $accounts = \Drupal::entityManager()
+        ->getStorage('user')
+        ->loadByProperties(array('name' => $matches[1]));
+
+      if ($account = reset($accounts)) {
         $matches += array(2 => '');
         $path = 'user/' . $account->id() . $matches[2];
       }
@@ -45,7 +50,7 @@ public function processInbound($path, Request $request) {
   public function processOutbound($path, &$options = array(), Request $request = NULL) {
     // Rewrite user/uid to user/username.
     if (preg_match('!^user/([0-9]+)(/.*)?!', $path, $matches)) {
-      if ($account = user_load($matches[1])) {
+      if ($account = User::load($matches[1])) {
         $matches += array(2 => '');
         $path = 'user/' . $account->getUsername() . $matches[2];
       }
diff --git a/core/modules/taxonomy/src/Entity/Vocabulary.php b/core/modules/taxonomy/src/Entity/Vocabulary.php
index ae7b10f..8cb110b 100644
--- a/core/modules/taxonomy/src/Entity/Vocabulary.php
+++ b/core/modules/taxonomy/src/Entity/Vocabulary.php
@@ -47,6 +47,21 @@
 class Vocabulary extends ConfigEntityBundleBase implements VocabularyInterface {
 
   /**
+   * Denotes that no term in the vocabulary has a parent.
+   */
+  const HIERARCHY_DISABLED = 0;
+
+  /**
+   * Denotes that one or more terms in the vocabulary has a single parent.
+   */
+  const HIERARCHY_SINGLE = 1;
+
+  /**
+   * Denotes that one or more terms in the vocabulary have multiple parents.
+   */
+  const HIERARCHY_MULTIPLE = 2;
+
+  /**
    * The taxonomy vocabulary ID.
    *
    * @var string
@@ -71,13 +86,13 @@ class Vocabulary extends ConfigEntityBundleBase implements VocabularyInterface {
    * The type of hierarchy allowed within the vocabulary.
    *
    * Possible values:
-   * - TAXONOMY_HIERARCHY_DISABLED: No parents.
-   * - TAXONOMY_HIERARCHY_SINGLE: Single parent.
-   * - TAXONOMY_HIERARCHY_MULTIPLE: Multiple parents.
+   * - Vocabulary::HIERARCHY_DISABLED: No parents.
+   * - Vocabulary::HIERARCHY_SINGLE: Single parent.
+   * - Vocabulary::HIERARCHY_MULTIPLE: Multiple parents.
    *
    * @var integer
    */
-  protected $hierarchy = TAXONOMY_HIERARCHY_DISABLED;
+  protected $hierarchy = Vocabulary::HIERARCHY_DISABLED;
 
   /**
    * The weight of this vocabulary in relation to other vocabularies.
diff --git a/core/modules/update/tests/modules/update_test/update_test.module b/core/modules/update/tests/modules/update_test/update_test.module
index fe01b21..f8de3cd 100644
--- a/core/modules/update/tests/modules/update_test/update_test.module
+++ b/core/modules/update/tests/modules/update_test/update_test.module
@@ -1,8 +1,6 @@
 <?php
 
 use Drupal\Core\Extension\Extension;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\BinaryFileResponse;
 
 /**
  * @file
diff --git a/core/modules/user/src/Access/RegisterAccessCheck.php b/core/modules/user/src/Access/RegisterAccessCheck.php
index ee0e5be..d5948e1 100644
--- a/core/modules/user/src/Access/RegisterAccessCheck.php
+++ b/core/modules/user/src/Access/RegisterAccessCheck.php
@@ -27,6 +27,6 @@ class RegisterAccessCheck implements AccessInterface {
    */
   public function access(AccountInterface $account) {
     $user_settings = \Drupal::config('user.settings');
-    return AccessResult::allowedIf($account->isAnonymous() && $user_settings->get('register') != USER_REGISTER_ADMINISTRATORS_ONLY)->cacheUntilConfigurationChanges($user_settings);
+    return AccessResult::allowedIf($account->isAnonymous() && $user_settings->get('register') != 'admin_only')->cacheUntilConfigurationChanges($user_settings);
   }
 }
diff --git a/core/modules/user/src/Controller/UserController.php b/core/modules/user/src/Controller/UserController.php
index f5c2a4c..6205564 100644
--- a/core/modules/user/src/Controller/UserController.php
+++ b/core/modules/user/src/Controller/UserController.php
@@ -171,6 +171,7 @@ public function userTitle(UserInterface $user = NULL) {
    *   A redirection to home page.
    */
   public function logout() {
+    \Drupal::moduleHandler()->load('user');
     user_logout();
     return $this->redirect('<front>');
   }
diff --git a/core/modules/user/src/Form/UserLoginForm.php b/core/modules/user/src/Form/UserLoginForm.php
index 999a7cd..6e496c3 100644
--- a/core/modules/user/src/Form/UserLoginForm.php
+++ b/core/modules/user/src/Form/UserLoginForm.php
@@ -83,7 +83,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#type' => 'textfield',
       '#title' => $this->t('Username'),
       '#size' => 60,
-      '#maxlength' => USERNAME_MAX_LENGTH,
+      //'#maxlength' => USERNAME_MAX_LENGTH,
+      '#maxlength' => 60,
       '#description' => $this->t('Enter your @s username.', array('@s' => $this->config('system.site')->get('name'))),
       '#required' => TRUE,
       '#attributes' => array(
diff --git a/core/modules/user/src/Form/UserPasswordForm.php b/core/modules/user/src/Form/UserPasswordForm.php
index 48b5571..d605f91 100644
--- a/core/modules/user/src/Form/UserPasswordForm.php
+++ b/core/modules/user/src/Form/UserPasswordForm.php
@@ -76,7 +76,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#type' => 'textfield',
       '#title' => $this->t('Username or email address'),
       '#size' => 60,
-      '#maxlength' => max(USERNAME_MAX_LENGTH, Email::EMAIL_MAX_LENGTH),
+      '#maxlength' => max(60, Email::EMAIL_MAX_LENGTH),
+      //'#maxlength' => max(USERNAME_MAX_LENGTH, Email::EMAIL_MAX_LENGTH),
       '#required' => TRUE,
       '#attributes' => array(
         'autocorrect' => 'off',
diff --git a/core/modules/views/src/Views.php b/core/modules/views/src/Views.php
index 525177f..ac387d2 100644
--- a/core/modules/views/src/Views.php
+++ b/core/modules/views/src/Views.php
@@ -522,6 +522,20 @@ public static function getPluginTypes($type = NULL) {
   }
 
   /**
+   * #pre_render callback to set contextual links for views using a Page display.
+   */
+  public static function pageDisplayPreRender(array $element) {
+    // If the main content of this page contains a view, attach its contextual
+    // links to the overall page array. This allows them to be rendered directly
+    // next to the page title.
+    \Drupal::moduleHandler()->load('views');
+    if ($view = views_get_page_view()) {
+      views_add_contextual_links($element, 'page', $view, $view->current_display);
+    }
+    return $element;
+  }
+
+  /**
    * Translates a string to the current language or to a given language.
    *
    * See the t() documentation for details.
diff --git a/core/modules/views/views.module b/core/modules/views/views.module
index d8516be..54fd7c2 100644
--- a/core/modules/views/views.module
+++ b/core/modules/views/views.module
@@ -281,24 +281,11 @@ function views_theme_suggestions_comment_alter(array &$suggestions, array $varia
 /**
  * Implements hook_element_info_alter().
  *
- * @see views_page_display_pre_render()
+ * @see \Drupal\views\Views::pageDisplayPreRender
  * @see views_preprocess_page()
  */
 function views_element_info_alter(&$types) {
-  $types['page']['#pre_render'][] = 'views_page_display_pre_render';
-}
-
-/**
- * #pre_render callback to set contextual links for views using a Page display.
- */
-function views_page_display_pre_render(array $element) {
-  // If the main content of this page contains a view, attach its contextual
-  // links to the overall page array. This allows them to be rendered directly
-  // next to the page title.
-  if ($view = views_get_page_view()) {
-    views_add_contextual_links($element, 'page', $view, $view->current_display);
-  }
-  return $element;
+  $types['page']['#pre_render'][] = '\Drupal\views\Views::pageDisplayPreRender';
 }
 
 /**
@@ -312,7 +299,7 @@ function views_preprocess_html(&$variables) {
 
   // If the page contains a view as its main content, contextual links may have
   // been attached to the page as a whole; for example, by
-  // views_page_display_pre_render().
+  // \Drupal\views\Views::pageDisplayPreRender().
   // This allows them to be associated with the page and rendered by default
   // next to the page title (which we want). However, it also causes the
   // Contextual Links module to treat the wrapper for the entire page (i.e.,
