diff --git a/core/lib/Drupal/Core/Field/PrepareCacheInterface.php b/core/lib/Drupal/Core/Field/PrepareCacheInterface.php
index 85d558c..42617e0 100644
--- a/core/lib/Drupal/Core/Field/PrepareCacheInterface.php
+++ b/core/lib/Drupal/Core/Field/PrepareCacheInterface.php
@@ -29,8 +29,9 @@
    *
    * The recommended way to implement it is to provide a computed field item
    * property that can accepts setting a value through setValue(). See
-   * \Drupal\text\Plugin\Field\FieldType\TextItemBase and the corresponding
-   * computed property Drupal\text\TextProcessed for an example.
+   * \Drupal\field\Plugin\Field\FieldType\TextItemBase and the corresponding
+   * computed property Drupal\field\Plugin\Field\FieldType\TextProcessed for an
+   * example.
    */
   public function getCacheData();
 
diff --git a/core/modules/block/custom_block/custom_block.info.yml b/core/modules/block/custom_block/custom_block.info.yml
index 692648f..5330869 100644
--- a/core/modules/block/custom_block/custom_block.info.yml
+++ b/core/modules/block/custom_block/custom_block.info.yml
@@ -6,5 +6,5 @@ version: VERSION
 core: 8.x
 dependencies:
   - block
-  - text
+  - field
 configure: custom_block.list
diff --git a/core/modules/comment/comment.info.yml b/core/modules/comment/comment.info.yml
index c841981..d3ed143 100644
--- a/core/modules/comment/comment.info.yml
+++ b/core/modules/comment/comment.info.yml
@@ -6,5 +6,5 @@ version: VERSION
 core: 8.x
 dependencies:
   - datetime
-  - text
+  - field
 configure: comment.admin
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
index 126fc75..ecbcdcc 100644
--- a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
+++ b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
@@ -20,7 +20,7 @@ class ContactSitewideTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('text', 'contact', 'field_ui');
+  public static $modules = array('field', 'contact', 'field_ui');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/Views/ContactFieldsTest.php b/core/modules/contact/lib/Drupal/contact/Tests/Views/ContactFieldsTest.php
index 368f1ad..c6caec3 100644
--- a/core/modules/contact/lib/Drupal/contact/Tests/Views/ContactFieldsTest.php
+++ b/core/modules/contact/lib/Drupal/contact/Tests/Views/ContactFieldsTest.php
@@ -20,7 +20,7 @@ class ContactFieldsTest extends ViewTestBase {
    *
    * @var array
    */
-  public static $modules = array('field', 'text', 'contact');
+  public static $modules = array('field', 'contact');
 
   /**
    * Contains the field definition array attached to contact used for this test.
diff --git a/core/modules/content_translation/lib/Drupal/content_translation/Tests/ContentTranslationTestBase.php b/core/modules/content_translation/lib/Drupal/content_translation/Tests/ContentTranslationTestBase.php
index c753114..880ddb4 100644
--- a/core/modules/content_translation/lib/Drupal/content_translation/Tests/ContentTranslationTestBase.php
+++ b/core/modules/content_translation/lib/Drupal/content_translation/Tests/ContentTranslationTestBase.php
@@ -21,7 +21,7 @@
    *
    * @var array
    */
-  public static $modules = array('text');
+  public static $modules = array('field');
 
   /**
    * The entity type being tested.
diff --git a/core/modules/edit/lib/Drupal/edit/Tests/EditTestBase.php b/core/modules/edit/lib/Drupal/edit/Tests/EditTestBase.php
index e09a127..c2c71c6 100644
--- a/core/modules/edit/lib/Drupal/edit/Tests/EditTestBase.php
+++ b/core/modules/edit/lib/Drupal/edit/Tests/EditTestBase.php
@@ -19,7 +19,7 @@ class EditTestBase extends DrupalUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('system', 'entity', 'entity_test', 'field', 'field_test', 'number', 'filter', 'user', 'text', 'edit');
+  public static $modules = array('system', 'entity', 'entity_test', 'field', 'field_test', 'filter', 'user', 'edit');
 
   /**
    * Sets the default field storage backend for fields created during tests.
diff --git a/core/modules/email/email.info.yml b/core/modules/email/email.info.yml
deleted file mode 100644
index 7a9293e..0000000
--- a/core/modules/email/email.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: E-mail
-type: module
-description: 'Defines a field type for e-mail addresses.'
-package: Field types
-version: VERSION
-core: 8.x
-dependencies:
-  - field
diff --git a/core/modules/email/email.module b/core/modules/email/email.module
deleted file mode 100644
index f74da6f..0000000
--- a/core/modules/email/email.module
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/**
- * @file
- * Defines a simple e-mail field type.
- */
-
-/**
- * Implements hook_help().
- */
-function email_help($path, $arg) {
-  switch ($path) {
-    case 'admin/help#email':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The E-mail module allows you to create fields that contain e-mail addresses. See the <a href="@field">Field module help</a> and the <a href="@field_ui">Field UI help</a> pages for general information on fields and how to create and manage them. For more information, see the <a href="@email_documentation">online documentation for the E-mail module</a>.', array('@field' => url('admin/help/field'), '@field_ui' => url('admin/help/field_ui'), '@email_documentation' => 'https://drupal.org/documentation/modules/email')) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Managing and displaying email fields') . '</dt>';
-      $output .= '<dd>' . t('The <em>settings</em> and the <em>display</em> of the email field can be configured separately. See the <a href="@field_ui">Field UI help</a> for more information on how to manage fields and their display.', array('@field_ui' => url('admin/help/field_ui'))) . '</dd>';
-      $output .= '<dt>' . t('Displaying e-mail addresses as links') . '</dt>';
-      $output .= '<dd>' . t('E-mail addresses can be displayed as <em>plain text</em> or as <em>links</em> by choosing the appropriate display format.') . '</dd>';
-      $output .= '<dt>' . t('Validating E-mail addresses') . '</dt>';
-      $output .= '<dd>' . t('E-mail addresses are validated when the content is saved.') . '</dd>';
-      $output .= '</dl>';
-      return $output;
-  }
-}
-
-/**
- * Implements hook_field_info_alter().
- */
-function email_field_info_alter(&$info) {
-  $info['email']['configurable'] = TRUE;
-  $info['email']['class'] = '\Drupal\email\ConfigurableEmailItem';
-  $info['email']['list_class'] = '\Drupal\Core\Field\ConfigFieldItemList';
-  $info['email']['default_widget'] = 'email_default';
-  if (\Drupal::moduleHandler()->moduleExists('text')) {
-    $info['email']['default_formatter'] = 'text_plain';
-  }
-  else {
-    $info['email']['default_formatter'] = 'email_mailto';
-  }
-  $info['email']['provider'] = 'email';
-}
-
-/**
- * Implements hook_field_formatter_info_alter().
- */
-function email_field_formatter_info_alter(&$info) {
-  if (isset($info['text_plain'])) {
-    $info['text_plain']['field_types'][] = 'email';
-  }
-}
diff --git a/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php b/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php
index b78131b..367f319 100644
--- a/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php
+++ b/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php
@@ -14,7 +14,7 @@
  */
 class EntityDisplayTest extends DrupalUnitTestBase {
 
-  public static $modules = array('entity', 'field', 'entity_test', 'user', 'text');
+  public static $modules = array('entity', 'field', 'entity_test', 'user');
 
   public static function getInfo() {
     return array(
@@ -263,7 +263,7 @@ public function testBaseFieldComponent() {
    * Tests renaming and deleting a bundle.
    */
   public function testRenameDeleteBundle() {
-    $this->enableModules(array('field_test', 'node', 'system', 'text'));
+    $this->enableModules(array('field_test', 'node', 'system'));
     $this->installSchema('node', array('node'));
 
     // Create a node bundle, display and form display object.
diff --git a/core/modules/entity/lib/Drupal/entity/Tests/EntityFormDisplayTest.php b/core/modules/entity/lib/Drupal/entity/Tests/EntityFormDisplayTest.php
index 9dad54d..17afb5e 100644
--- a/core/modules/entity/lib/Drupal/entity/Tests/EntityFormDisplayTest.php
+++ b/core/modules/entity/lib/Drupal/entity/Tests/EntityFormDisplayTest.php
@@ -14,7 +14,7 @@
  */
 class EntityFormDisplayTest extends DrupalUnitTestBase {
 
-  public static $modules = array('entity', 'field', 'entity_test', 'user', 'text');
+  public static $modules = array('entity', 'field', 'entity_test', 'user');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceItemTest.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceItemTest.php
index e95650a..3e6bfbb 100644
--- a/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceItemTest.php
+++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceItemTest.php
@@ -22,7 +22,7 @@ class EntityReferenceItemTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity_reference', 'taxonomy', 'options', 'text', 'filter');
+  public static $modules = array('field', 'entity_reference', 'taxonomy', 'options', 'filter');
 
   /**
    * The taxonomy vocabulary to test with.
diff --git a/core/modules/field/config/field.settings.yml b/core/modules/field/config/field.settings.yml
index b6172c1..bdfe7e6 100644
--- a/core/modules/field/config/field.settings.yml
+++ b/core/modules/field/config/field.settings.yml
@@ -1 +1,2 @@
+default_summary_length: 600
 purge_batch_size: 10
diff --git a/core/modules/email/config/schema/email.schema.yml b/core/modules/field/config/schema/field.email.schema.yml
similarity index 100%
rename from core/modules/email/config/schema/email.schema.yml
rename to core/modules/field/config/schema/field.email.schema.yml
diff --git a/core/modules/link/config/schema/link.schema.yml b/core/modules/field/config/schema/field.link.schema.yml
similarity index 100%
rename from core/modules/link/config/schema/link.schema.yml
rename to core/modules/field/config/schema/field.link.schema.yml
diff --git a/core/modules/number/config/schema/number.schema.yml b/core/modules/field/config/schema/field.number.schema.yml
similarity index 100%
rename from core/modules/number/config/schema/number.schema.yml
rename to core/modules/field/config/schema/field.number.schema.yml
diff --git a/core/modules/field/config/schema/field.schema.yml b/core/modules/field/config/schema/field.schema.yml
index 66a1444..7da538d 100644
--- a/core/modules/field/config/schema/field.schema.yml
+++ b/core/modules/field/config/schema/field.schema.yml
@@ -4,6 +4,9 @@ field.settings:
   type: mapping
   label: 'Field settings'
   mapping:
+    default_summary_length:
+      type: integer
+      label: 'Default summary length'
     purge_batch_size:
       type: integer
       label: 'Maximum number of field data records to purge'
diff --git a/core/modules/telephone/config/schema/telephone.schema.yml b/core/modules/field/config/schema/field.telephone.schema.yml
similarity index 100%
rename from core/modules/telephone/config/schema/telephone.schema.yml
rename to core/modules/field/config/schema/field.telephone.schema.yml
diff --git a/core/modules/text/config/schema/text.schema.yml b/core/modules/field/config/schema/field.text.schema.yml
similarity index 96%
rename from core/modules/text/config/schema/text.schema.yml
rename to core/modules/field/config/schema/field.text.schema.yml
index d377366..dfda050 100644
--- a/core/modules/text/config/schema/text.schema.yml
+++ b/core/modules/field/config/schema/field.text.schema.yml
@@ -1,13 +1,5 @@
 # Schema for the configuration files of the text module.
 
-text.settings:
-  type: mapping
-  label: 'Text settings'
-  mapping:
-    default_summary_length:
-      type: integer
-      label: 'Default summary length'
-
 field.text.settings:
   type: mapping
   label: 'Text settings'
diff --git a/core/modules/field/field.info.yml b/core/modules/field/field.info.yml
index f30ba86..4b31099 100644
--- a/core/modules/field/field.info.yml
+++ b/core/modules/field/field.info.yml
@@ -5,3 +5,5 @@ package: Core
 version: VERSION
 core: 8.x
 required: true
+dependencies:
+  - filter
diff --git a/core/modules/field/field.module b/core/modules/field/field.module
index 6bd2c6d..5430b20 100644
--- a/core/modules/field/field.module
+++ b/core/modules/field/field.module
@@ -5,6 +5,7 @@
  */
 
 use Drupal\Component\Utility\Html;
+use Drupal\Component\Utility\String;
 use Drupal\Component\Utility\Xss;
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Template\Attribute;
@@ -137,10 +138,33 @@ function field_theme() {
     'field_multiple_value_form' => array(
       'render element' => 'element',
     ),
+    'link_formatter_link_separate' => array(
+      'variables' => array('title' => NULL, 'url_title' => NULL, 'href' => NULL, 'options' => array()),
+      'template' => 'link-formatter-link-separate',
+    ),
   );
 }
 
 /**
+ * Implements hook_library_info().
+ */
+function field_library_info() {
+  $libraries['drupal.text'] = array(
+    'title' => 'Text',
+    'version' => \Drupal::VERSION,
+    'js' => array(
+      drupal_get_path('module', 'field') . '/js/text.js' => array(),
+    ),
+    'dependencies' => array(
+      array('system', 'jquery'),
+      array('system', 'jquery.once'),
+      array('system', 'drupal'),
+    ),
+  );
+  return $libraries;
+}
+
+/**
  * Implements hook_cron().
  */
 function field_cron() {
@@ -189,6 +213,33 @@ function field_system_info_alter(&$info, $file, $type) {
 }
 
 /**
+ * Implements hook_field_info_alter().
+ */
+function field_field_info_alter(&$info) {
+  // Email.
+  $info['email']['configurable'] = TRUE;
+  $info['email']['provider'] = 'field';
+  $info['email']['class'] = '\Drupal\field\Plugin\Field\FieldType\ConfigurableEmailItem';
+  $info['email']['list_class'] = '\Drupal\Core\Field\ConfigFieldItemList';
+  $info['email']['default_widget'] = 'email_default';
+  $info['email']['default_formatter'] = 'text_plain';
+
+  // Telephone.
+  $info['telephone']['default_formatter'] = 'text_plain';
+}
+
+/**
+ * Implements hook_field_formatter_info_alter().
+ */
+function field_field_formatter_info_alter(&$info) {
+  // Email.
+  $info['text_plain']['field_types'][] = 'email';
+
+  // Telephone.
+  $info['text_plain']['field_types'][] = 'telephone';
+}
+
+/**
  * Implements hook_entity_field_info() to define all configured fields.
  */
 function field_entity_field_info($entity_type) {
@@ -568,6 +619,28 @@ function template_preprocess_field(&$variables, $hook) {
 }
 
 /**
+ * Prepares variables for separated link field templates.
+ *
+ * This template outputs a separate title and link.
+ *
+ * Default template: link-formatter-link-separate.html.twig.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - title: (optional) A descriptive or alternate title for the link, which
+ *     may be different than the actual link text.
+ *   - url_title: The anchor text for the link.
+ *   - href: The link URL.
+ *   - options: (optional) An array of options to pass to l().
+ */
+function template_preprocess_link_formatter_link_separate(&$variables) {
+  if (!empty($variables['title'])) {
+    $variables['title'] = String::checkPlain($variables['title']);
+  }
+  $variables['link'] = l($variables['url_title'], $variables['href'], $variables['options']);
+}
+
+/**
  * @} End of "defgroup field".
  */
 
@@ -690,3 +763,137 @@ function field_hook_info() {
 
   return $hooks;
 }
+
+/**
+ * Generates a trimmed, formatted version of a text field value.
+ *
+ * If the end of the summary is not indicated using the <!--break--> delimiter
+ * then we generate the summary automatically, trying to end it at a sensible
+ * place such as the end of a paragraph, a line break, or the end of a sentence
+ * (in that order of preference).
+ *
+ * @param $text
+ *   The content for which a summary will be generated.
+ * @param $format
+ *   The format of the content. If the line break filter is present then we
+ *   treat newlines embedded in $text as line breaks. If the htmlcorrector
+ *   filter is present, it will be run on the generated summary (if different
+ *   from the incoming $text).
+ * @param $size
+ *   The desired character length of the summary. If omitted, the default value
+ *   will be used. Ignored if the special delimiter is present in $text.
+ *
+ * @return
+ *   The generated summary.
+ */
+function text_summary($text, $format = NULL, $size = NULL) {
+  if (!isset($size)) {
+    $size = \Drupal::config('field.settings')->get('default_summary_length');
+  }
+
+  // Find where the delimiter is in the body
+  $delimiter = strpos($text, '<!--break-->');
+
+  // If the size is zero, and there is no delimiter, the entire body is the summary.
+  if ($size == 0 && $delimiter === FALSE) {
+    return $text;
+  }
+
+  // If a valid delimiter has been specified, use it to chop off the summary.
+  if ($delimiter !== FALSE) {
+    return substr($text, 0, $delimiter);
+  }
+
+  // Retrieve the filters of the specified text format, if any.
+  if (isset($format)) {
+    $filters = entity_load('filter_format', $format)->filters();
+    // If the specified format does not exist, return nothing. $text is already
+    // filtered text, but the remainder of this function will not be able to
+    // ensure a sane and secure summary.
+    if (!$filters) {
+      return '';
+    }
+  }
+
+  // If we have a short body, the entire body is the summary.
+  if (drupal_strlen($text) <= $size) {
+    return $text;
+  }
+
+  // If the delimiter has not been specified, try to split at paragraph or
+  // sentence boundaries.
+
+  // The summary may not be longer than maximum length specified. Initial slice.
+  $summary = truncate_utf8($text, $size);
+
+  // Store the actual length of the UTF8 string -- which might not be the same
+  // as $size.
+  $max_rpos = strlen($summary);
+
+  // How much to cut off the end of the summary so that it doesn't end in the
+  // middle of a paragraph, sentence, or word.
+  // Initialize it to maximum in order to find the minimum.
+  $min_rpos = $max_rpos;
+
+  // Store the reverse of the summary. We use strpos on the reversed needle and
+  // haystack for speed and convenience.
+  $reversed = strrev($summary);
+
+  // Build an array of arrays of break points grouped by preference.
+  $break_points = array();
+
+  // A paragraph near the end of sliced summary is most preferable.
+  $break_points[] = array('</p>' => 0);
+
+  // If no complete paragraph then treat line breaks as paragraphs.
+  $line_breaks = array('<br />' => 6, '<br>' => 4);
+  // Newline only indicates a line break if line break converter
+  // filter is present.
+  if (isset($format) && $filters->has('filter_autop') && $filters->get('filter_autop')->status) {
+    $line_breaks["\n"] = 1;
+  }
+  $break_points[] = $line_breaks;
+
+  // If the first paragraph is too long, split at the end of a sentence.
+  $break_points[] = array('. ' => 1, '! ' => 1, '? ' => 1, '。' => 0, '؟ ' => 1);
+
+  // Iterate over the groups of break points until a break point is found.
+  foreach ($break_points as $points) {
+    // Look for each break point, starting at the end of the summary.
+    foreach ($points as $point => $offset) {
+      // The summary is already reversed, but the break point isn't.
+      $rpos = strpos($reversed, strrev($point));
+      if ($rpos !== FALSE) {
+        $min_rpos = min($rpos + $offset, $min_rpos);
+      }
+    }
+
+    // If a break point was found in this group, slice and stop searching.
+    if ($min_rpos !== $max_rpos) {
+      // Don't slice with length 0. Length must be <0 to slice from RHS.
+      $summary = ($min_rpos === 0) ? $summary : substr($summary, 0, 0 - $min_rpos);
+      break;
+    }
+  }
+
+  // If the htmlcorrector filter is present, apply it to the generated summary.
+  if (isset($format) && $filters->has('filter_htmlcorrector') && $filters->get('filter_htmlcorrector')->status) {
+    $summary = Html::normalize($summary);
+  }
+
+  return $summary;
+}
+
+/**
+ * Implements hook_filter_format_update().
+ */
+function field_filter_format_update($format) {
+  field_cache_clear();
+}
+
+/**
+ * Implements hook_filter_format_disable().
+ */
+function field_filter_format_disable($format) {
+  field_cache_clear();
+}
diff --git a/core/modules/text/text.js b/core/modules/field/js/text.js
similarity index 100%
rename from core/modules/text/text.js
rename to core/modules/field/js/text.js
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/DefaultNumberFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/DefaultNumberFormatter.php
similarity index 95%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/DefaultNumberFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/DefaultNumberFormatter.php
index 2d08f5c..ca3bdb3 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/DefaultNumberFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/DefaultNumberFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Plugin\field\formatter\DefaultNumberFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\DefaultNumberFormatter.
  */
 
-namespace Drupal\number\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Field\FieldItemListInterface;
diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/LinkFormatter.php
similarity index 97%
rename from core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/LinkFormatter.php
index 04e384b..b6145d0 100644
--- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/LinkFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\link\Plugin\field\formatter\LinkFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\LinkFormatter.
  */
 
-namespace Drupal\link\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Component\Utility\Url;
 use Drupal\Component\Utility\String;
diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
similarity index 94%
rename from core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
index 4392123..c3e7be6 100644
--- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\link\Plugin\field\formatter\LinkSeparateFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\LinkSeparateFormatter.
  *
  * @todo
  * Merge into 'link' formatter once there is a #type like 'item' that
@@ -10,7 +10,7 @@
  * http://drupal.org/node/1829202
  */
 
-namespace Drupal\link\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FieldItemListInterface;
 
diff --git a/core/modules/email/lib/Drupal/email/Plugin/Field/FieldFormatter/MailToFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/MailToFormatter.php
similarity index 85%
rename from core/modules/email/lib/Drupal/email/Plugin/Field/FieldFormatter/MailToFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/MailToFormatter.php
index 609d46e..f290a89 100644
--- a/core/modules/email/lib/Drupal/email/Plugin/Field/FieldFormatter/MailToFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/MailToFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\email\Plugin\Field\FieldFormatter\MailToFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\MailToFormatter.
  */
 
-namespace Drupal\email\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Field\FieldItemListInterface;
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php
similarity index 93%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php
index 1fe9c72..d63d0ec 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\number\Plugin\field\formatter\NumberDecimalFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\NumberDecimalFormatter.
  */
 
-namespace Drupal\number\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 /**
  * Plugin implementation of the 'number_decimal' formatter.
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php
similarity index 85%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php
index 53ff874..dfdd7c6 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Plugin\field\formatter\NumberIntegerFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\NumberIntegerFormatter.
  */
 
-namespace Drupal\number\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 /**
  * Plugin implementation of the 'number_integer' formatter.
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberUnformattedFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberUnformattedFormatter.php
similarity index 83%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberUnformattedFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberUnformattedFormatter.php
index 46f093e..d0f6c2a 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberUnformattedFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/NumberUnformattedFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Plugin\field\formatter\NumberUnformattedFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\NumberUnformattedFormatter.
  */
 
-namespace Drupal\number\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Field\FieldItemListInterface;
diff --git a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
similarity index 93%
rename from core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
index 436a4fc..aa6c2b9 100644
--- a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\telephone\Plugin\field\formatter\TelephoneLinkFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\TelephoneLinkFormatter.
  */
 
-namespace Drupal\telephone\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Field\FieldItemListInterface;
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
similarity index 85%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
index ba85506..88a32a6 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\field\formatter\TextDefaultFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\TextDefaultFormatter.
  */
 
-namespace Drupal\text\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Field\FieldItemListInterface;
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextPlainFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextPlainFormatter.php
similarity index 87%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextPlainFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextPlainFormatter.php
index 6c15bf5..dd0d1c3 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextPlainFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextPlainFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\field\formatter\TextPlainFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\TextPlainFormatter.
  */
 
-namespace Drupal\text\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Field\FieldItemListInterface;
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php
similarity index 76%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php
index baebdc1..7d37daf 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\field\formatter\TextSummaryOrTrimmedFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\TextSummaryOrTrimmedFormatter.
  */
 
-namespace Drupal\text\Plugin\Field\FieldFormatter;
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 /**
  * Plugin implementation of the 'text_summary_or_trimmed' formatter.
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php
similarity index 90%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php
index 8100e7b..18346e7 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php
@@ -2,9 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\field\formatter\TextTrimmedFormatter.
+ * Contains \Drupal\field\Plugin\Field\FieldFormatter\TextTrimmedFormatter.
  */
-namespace Drupal\text\Plugin\Field\FieldFormatter;
+
+namespace Drupal\field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Field\FieldItemListInterface;
@@ -15,7 +16,7 @@
  * Note: This class also contains the implementations used by the
  * 'text_summary_or_trimmed' formatter.
  *
- * @see \Drupal\text\Field\Formatter\TextSummaryOrTrimmedFormatter
+ * @see \Drupal\field\Field\FieldFormatter\TextSummaryOrTrimmedFormatter
  *
  * @FieldFormatter(
  *   id = "text_trimmed",
diff --git a/core/modules/email/lib/Drupal/email/ConfigurableEmailItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/ConfigurableEmailItem.php
similarity index 85%
rename from core/modules/email/lib/Drupal/email/ConfigurableEmailItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/ConfigurableEmailItem.php
index 65e08da..7e49012 100644
--- a/core/modules/email/lib/Drupal/email/ConfigurableEmailItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/ConfigurableEmailItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\email\ConfigurableEmailItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\ConfigurableEmailItem.
  */
 
-namespace Drupal\email;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Field\Plugin\Field\FieldType\EmailItem;
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/DecimalItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/DecimalItem.php
similarity index 95%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/DecimalItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/DecimalItem.php
index 42588e8..fb7e103 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/DecimalItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/DecimalItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Plugin\Field\FieldType\DecimalItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\DecimalItem.
  */
 
-namespace Drupal\number\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\Field\FieldDefinitionInterface;
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/FloatItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/FloatItem.php
similarity index 91%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/FloatItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/FloatItem.php
index 5765147..05072c0 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/FloatItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/FloatItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Plugin\Field\FieldType\FloatItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\FloatItem.
  */
 
-namespace Drupal\number\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\Field\FieldDefinitionInterface;
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/IntegerItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/IntegerItem.php
similarity index 91%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/IntegerItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/IntegerItem.php
index 6c44d76..f750803 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/IntegerItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/IntegerItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Plugin\Field\FieldType\IntegerItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\IntegerItem.
  */
 
-namespace Drupal\number\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\Field\FieldDefinitionInterface;
diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/LinkItem.php
similarity index 96%
rename from core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/LinkItem.php
index bc28594..a7af9c6 100644
--- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/LinkItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\email\Plugin\Field\FieldType\LinkItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\LinkItem.
  */
 
-namespace Drupal\link\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\ConfigFieldItemBase;
 use Drupal\Core\TypedData\DataDefinition;
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/NumberItemBase.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/NumberItemBase.php
similarity index 96%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/NumberItemBase.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/NumberItemBase.php
index 22f2d59..f039a6b 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldType/NumberItemBase.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/NumberItemBase.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Plugin\Field\FieldType\NumberItemBase.
+ * Contains \Drupal\field\Plugin\Field\FieldType\NumberItemBase.
  */
 
-namespace Drupal\number\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\ConfigFieldItemBase;
 
diff --git a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldType/TelephoneItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TelephoneItem.php
similarity index 94%
rename from core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldType/TelephoneItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TelephoneItem.php
index 67d7bdf..5392906 100644
--- a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldType/TelephoneItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TelephoneItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\telephone\Plugin\Field\FieldType\TelephoneItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\TelephoneItem.
  */
 
-namespace Drupal\telephone\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\ConfigFieldItemBase;
 use Drupal\Core\TypedData\DataDefinition;
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextItem.php
similarity index 96%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextItem.php
index 93bd949..ac400cb 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\Field\FieldType\TextItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\TextItem.
  */
 
-namespace Drupal\text\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\FieldDefinitionInterface;
 
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextItemBase.php
similarity index 88%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextItemBase.php
index 158c416..ca70b63 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextItemBase.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\Field\FieldType\TextItemBase.
+ * Contains \Drupal\field\Plugin\Field\FieldType\TextItemBase.
  */
 
-namespace Drupal\text\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\ConfigFieldItemBase;
 use Drupal\Core\Field\PrepareCacheInterface;
@@ -38,7 +38,7 @@ public function getPropertyDefinitions() {
         ->setLabel(t('Processed text'))
         ->setDescription(t('The text value with the text format applied.'))
         ->setComputed(TRUE)
-        ->setClass('\Drupal\text\TextProcessed')
+        ->setClass('\Drupal\field\Plugin\Field\FieldType\TextProcessed')
         ->setSetting('text source', 'value');
     }
     return static::$propertyDefinitions;
@@ -74,7 +74,7 @@ public function getCacheData() {
     $text_processing = $this->getSetting('text_processing');
     if (!$text_processing || filter_format_allowcache($this->get('format')->getValue())) {
       foreach ($this->getPropertyDefinitions() as $property => $definition) {
-        if ($definition->getClass() == '\Drupal\text\TextProcessed') {
+        if ($definition->getClass() == '\Drupal\field\Plugin\Field\FieldType\TextProcessed') {
           $data[$property] = $this->get($property)->getValue();
         }
       }
@@ -93,7 +93,7 @@ public function onChange($property_name) {
 
     // Unset processed properties that are affected by the change.
     foreach ($this->getPropertyDefinitions() as $property => $definition) {
-      if ($definition->getClass() == '\Drupal\text\TextProcessed') {
+      if ($definition->getClass() == '\Drupal\field\Plugin\Field\FieldType\TextProcessed') {
         if ($property_name == 'format' || ($definition->getSetting('text source') == $property_name)) {
           $this->set($property, NULL, FALSE);
         }
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextLongItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextLongItem.php
similarity index 92%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextLongItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextLongItem.php
index 934d11f..d7d49a9 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextLongItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextLongItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\Field\FieldType\TextLongItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\TextLongItem.
  */
 
-namespace Drupal\text\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\FieldDefinitionInterface;
 
diff --git a/core/modules/text/lib/Drupal/text/TextProcessed.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextProcessed.php
similarity index 91%
rename from core/modules/text/lib/Drupal/text/TextProcessed.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextProcessed.php
index d07a196..adbfd23 100644
--- a/core/modules/text/lib/Drupal/text/TextProcessed.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextProcessed.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\text\TextProcessed.
+ * Contains \Drupal\field\Plugin\Field\FieldType\TextProcessed.
  */
 
-namespace Drupal\text;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\TypedData\DataDefinitionInterface;
 use Drupal\Core\TypedData\TypedDataInterface;
@@ -57,7 +57,7 @@ public function getValue($langcode = NULL) {
     }
     else {
       // Escape all HTML and retain newlines.
-      // @see \Drupal\text\Plugin\field\formatter\TextPlainFormatter
+      // @see \Drupal\field\Plugin\Field\FieldFormatter\TextPlainFormatter
       $this->processed = nl2br(check_plain($text));
     }
     return $this->processed;
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextWithSummaryItem.php
similarity index 94%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextWithSummaryItem.php
index 3942510..5d035e8 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldType/TextWithSummaryItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\Field\FieldType\TextWithSummaryItem.
+ * Contains \Drupal\field\Plugin\Field\FieldType\TextWithSummaryItem.
  */
 
-namespace Drupal\text\Plugin\Field\FieldType;
+namespace Drupal\field\Plugin\Field\FieldType;
 
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\Field\FieldDefinitionInterface;
@@ -48,7 +48,7 @@ public function getPropertyDefinitions() {
         ->setLabel(t('Processed summary text'))
         ->setDescription(t('The summary text value with the text format applied.'))
         ->setComputed(TRUE)
-        ->setClass('\Drupal\text\TextProcessed')
+        ->setClass('\Drupal\field\Plugin\Field\FieldType\TextProcessed')
         ->setSetting('text source', 'summary');
     }
     return static::$propertyDefinitions;
diff --git a/core/modules/email/lib/Drupal/email/Plugin/Field/FieldWidget/EmailDefaultWidget.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
similarity index 93%
rename from core/modules/email/lib/Drupal/email/Plugin/Field/FieldWidget/EmailDefaultWidget.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
index 62db527..c429fd2 100644
--- a/core/modules/email/lib/Drupal/email/Plugin/Field/FieldWidget/EmailDefaultWidget.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\email\Plugin\Field\FieldWidget\EmailDefaultWidget.
+ * Definition of Drupal\field\Plugin\Field\FieldWidget\EmailDefaultWidget.
  */
 
-namespace Drupal\email\Plugin\Field\FieldWidget;
+namespace Drupal\field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\WidgetBase;
diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldWidget/LinkWidget.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/LinkWidget.php
similarity index 97%
rename from core/modules/link/lib/Drupal/link/Plugin/Field/FieldWidget/LinkWidget.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/LinkWidget.php
index dc10574..cc00bf8 100644
--- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldWidget/LinkWidget.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/LinkWidget.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\link\Plugin\Field\FieldWidget\LinkWidget.
+ * Contains \Drupal\field\Plugin\Field\FieldWidget\LinkWidget.
  */
 
-namespace Drupal\link\Plugin\Field\FieldWidget;
+namespace Drupal\field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\WidgetBase;
diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldWidget/NumberWidget.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/NumberWidget.php
similarity index 96%
rename from core/modules/number/lib/Drupal/number/Plugin/Field/FieldWidget/NumberWidget.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/NumberWidget.php
index 436e2cd..1514733 100644
--- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldWidget/NumberWidget.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/NumberWidget.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Plugin\Field\FieldWidget\NumberWidget.
+ * Contains \Drupal\field\Plugin\Field\FieldWidget\NumberWidget.
  */
 
-namespace Drupal\number\Plugin\Field\FieldWidget;
+namespace Drupal\field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\WidgetBase;
diff --git a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
similarity index 92%
rename from core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
index 78c768e..aa3f012 100644
--- a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\telephone\Plugin\Field\FieldWidget\TelephoneDefaultWidget.
+ * Contains \Drupal\field\Plugin\Field\FieldWidget\TelephoneDefaultWidget.
  */
 
-namespace Drupal\telephone\Plugin\Field\FieldWidget;
+namespace Drupal\field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\WidgetBase;
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWidget.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextareaWidget.php
similarity index 96%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWidget.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextareaWidget.php
index 9752a1f..163a378 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWidget.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextareaWidget.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\Field\FieldWidget\TextareaWidget.
+ * Contains \Drupal\field\Plugin\Field\FieldWidget\TextareaWidget.
  */
 
-namespace Drupal\text\Plugin\Field\FieldWidget;
+namespace Drupal\field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\WidgetBase;
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php
similarity index 90%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php
index 2490ed2..43a0df9 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php
@@ -2,12 +2,12 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\Field\FieldWidget\TextareaWithSummaryWidget.
+ * Contains \Drupal\field\Plugin\Field\FieldWidget\TextareaWithSummaryWidget.
  */
 
-namespace Drupal\text\Plugin\Field\FieldWidget;
+namespace Drupal\field\Plugin\Field\FieldWidget;
 
-use Drupal\text\Plugin\Field\FieldWidget\TextareaWidget;
+use Drupal\field\Plugin\Field\FieldWidget\TextareaWidget;
 use Symfony\Component\Validator\ConstraintViolationInterface;
 use Drupal\Core\Field\FieldItemListInterface;
 
@@ -69,7 +69,7 @@ function formElement(FieldItemListInterface $items, $delta, array $element, arra
       '#rows' => $this->getSetting('summary_rows'),
       '#description' => t('Leave blank to use trimmed value of full text as the summary.'),
       '#attached' => array(
-        'library' => array(array('text', 'drupal.text')),
+        'library' => array(array('field', 'drupal.text')),
       ),
       '#attributes' => array('class' => array('text-summary')),
       '#prefix' => '<div class="text-summary-wrapper">',
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextfieldWidget.php b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextfieldWidget.php
similarity index 96%
rename from core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextfieldWidget.php
rename to core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextfieldWidget.php
index b35e633..d085d85 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextfieldWidget.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Field/FieldWidget/TextfieldWidget.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Plugin\Field\FieldWidget\TextfieldWidget.
+ * Contains \Drupal\field\Plugin\Field\FieldWidget\TextfieldWidget.
  */
 
-namespace Drupal\text\Plugin\Field\FieldWidget;
+namespace Drupal\field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\WidgetBase;
diff --git a/core/modules/field/lib/Drupal/field/Tests/CrudTest.php b/core/modules/field/lib/Drupal/field/Tests/CrudTest.php
index fab8603..ecdc2ca 100644
--- a/core/modules/field/lib/Drupal/field/Tests/CrudTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/CrudTest.php
@@ -17,7 +17,7 @@ class CrudTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('number');
+  public static $modules = array('field');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/email/lib/Drupal/email/Tests/EmailFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/Email/EmailFieldTest.php
similarity index 95%
rename from core/modules/email/lib/Drupal/email/Tests/EmailFieldTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Email/EmailFieldTest.php
index 9ae6eb0..63180a7 100644
--- a/core/modules/email/lib/Drupal/email/Tests/EmailFieldTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Email/EmailFieldTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\email\Tests\EmailFieldTest.
+ * Definition of Drupal\field\Tests\Email\EmailFieldTest.
  */
 
-namespace Drupal\email\Tests;
+namespace Drupal\field\Tests\Email;
 
 use Drupal\Core\Language\Language;
 use Drupal\simpletest\WebTestBase;
@@ -20,7 +20,7 @@ class EmailFieldTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'entity_test', 'email', 'field_ui');
+  public static $modules = array('field', 'node', 'entity_test', 'field_ui');
 
   /**
    * A field to use in this test class.
diff --git a/core/modules/email/lib/Drupal/email/Tests/EmailItemTest.php b/core/modules/field/lib/Drupal/field/Tests/Email/EmailItemTest.php
similarity index 94%
rename from core/modules/email/lib/Drupal/email/Tests/EmailItemTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Email/EmailItemTest.php
index 7bbd89b..4f0ebc2 100644
--- a/core/modules/email/lib/Drupal/email/Tests/EmailItemTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Email/EmailItemTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\email\Tests\EmailItemTest.
+ * Contains \Drupal\field\Tests\Email\EmailItemTest.
  */
 
-namespace Drupal\email\Tests;
+namespace Drupal\field\Tests\Email;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\FieldItemInterface;
@@ -21,7 +21,7 @@ class EmailItemTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('email');
+  public static $modules = array('field');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldHelpTest.php b/core/modules/field/lib/Drupal/field/Tests/FieldHelpTest.php
index 074a009..766f3af 100644
--- a/core/modules/field/lib/Drupal/field/Tests/FieldHelpTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/FieldHelpTest.php
@@ -54,16 +54,15 @@ public function testFieldHelp() {
     // Visit the Help page and make sure no warnings or notices are thrown.
     $this->drupalGet('admin/help/field');
 
-    // Enable the Options, E-mail and Field API Test modules.
-    \Drupal::moduleHandler()->install(array('options', 'email', 'field_test'));
+    // Enable the Options and Field API Test modules.
+    \Drupal::moduleHandler()->install(array('options', 'field_test'));
     \Drupal::service('plugin.manager.field.widget')->clearCachedDefinitions();
     \Drupal::service('plugin.manager.field.field_type')->clearCachedDefinitions();
 
     $this->drupalGet('admin/help/field');
     $this->assertLink('Options', 0, 'Options module is listed on the Field help page.');
-    $this->assertLink('E-mail', 0, 'E-mail module is listed on the Field help page.');
     $this->assertText('Field API Test', 'Modules with field types that do not implement hook_help are listed.');
     $this->assertNoLink('Field API Test', 'Modules with field types that do not implement hook_help are not linked.');
-    $this->assertNoLink('Link', 'Modules that have not been installed, are not listed.');
+    $this->assertNoLink('Datetime', 'Modules that have not been installed, are not listed.');
   }
 }
diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldUnitTestBase.php b/core/modules/field/lib/Drupal/field/Tests/FieldUnitTestBase.php
index 9e10afd..26ef7c2 100644
--- a/core/modules/field/lib/Drupal/field/Tests/FieldUnitTestBase.php
+++ b/core/modules/field/lib/Drupal/field/Tests/FieldUnitTestBase.php
@@ -21,7 +21,7 @@
    *
    * @var array
    */
-  public static $modules = array('user', 'entity', 'system', 'field', 'text', 'entity_test', 'field_test');
+  public static $modules = array('user', 'entity', 'system', 'field', 'entity_test', 'field_test');
 
   /**
    * A string for assert raw and text helper methods.
diff --git a/core/modules/link/lib/Drupal/link/Tests/LinkFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/Link/LinkFieldTest.php
similarity index 99%
rename from core/modules/link/lib/Drupal/link/Tests/LinkFieldTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Link/LinkFieldTest.php
index 1be52d5..0a786fd 100644
--- a/core/modules/link/lib/Drupal/link/Tests/LinkFieldTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Link/LinkFieldTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains Drupal\link\Tests\LinkFieldTest.
+ * Contains Drupal\field\Tests\Link\LinkFieldTest.
  */
 
-namespace Drupal\link\Tests;
+namespace Drupal\field\Tests\Link;
 
 use Drupal\simpletest\WebTestBase;
 use Drupal\Component\Utility\String;
@@ -20,7 +20,7 @@ class LinkFieldTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity_test', 'link');
+  public static $modules = array('field', 'entity_test');
 
   /**
    * A field to use in this test class.
diff --git a/core/modules/link/lib/Drupal/link/Tests/LinkFieldUITest.php b/core/modules/field/lib/Drupal/field/Tests/Link/LinkFieldUITest.php
similarity index 92%
rename from core/modules/link/lib/Drupal/link/Tests/LinkFieldUITest.php
rename to core/modules/field/lib/Drupal/field/Tests/Link/LinkFieldUITest.php
index 97fda35..a45468f 100644
--- a/core/modules/link/lib/Drupal/link/Tests/LinkFieldUITest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Link/LinkFieldUITest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains Drupal\link\Tests\LinkFieldUITest.
+ * Contains Drupal\field\Tests\Link\LinkFieldUITest.
  */
 
-namespace Drupal\link\Tests;
+namespace Drupal\field\Tests\Link;
 
 use Drupal\simpletest\WebTestBase;
 
@@ -19,7 +19,7 @@ class LinkFieldUITest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'link', 'field_ui');
+  public static $modules = array('field', 'node', 'field_ui');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/link/lib/Drupal/link/Tests/LinkItemTest.php b/core/modules/field/lib/Drupal/field/Tests/Link/LinkItemTest.php
similarity index 95%
rename from core/modules/link/lib/Drupal/link/Tests/LinkItemTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Link/LinkItemTest.php
index d1e4ea6..a040e0e 100644
--- a/core/modules/link/lib/Drupal/link/Tests/LinkItemTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Link/LinkItemTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\link\Tests\LinkItemTest.
+ * Contains \Drupal\field\Tests\Link\LinkItemTest.
  */
 
-namespace Drupal\link\Tests;
+namespace Drupal\field\Tests\Link;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\FieldItemInterface;
@@ -21,7 +21,7 @@ class LinkItemTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('link');
+  public static $modules = array('field');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/Number/NumberFieldTest.php
similarity index 98%
rename from core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Number/NumberFieldTest.php
index a0f0a0e..453e2bc 100644
--- a/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Number/NumberFieldTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\number\NumberFieldTest.
+ * Contains \Drupal\field\Tests\Number\NumberFieldTest.
  */
 
-namespace Drupal\number\Tests;
+namespace Drupal\field\Tests\Number;
 
 use Drupal\simpletest\WebTestBase;
 
@@ -19,7 +19,7 @@ class NumberFieldTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'entity_test', 'number', 'field_ui');
+  public static $modules = array('field', 'node', 'entity_test', 'field_ui');
 
   /**
    * A field to use in this class.
diff --git a/core/modules/number/lib/Drupal/number/Tests/NumberItemTest.php b/core/modules/field/lib/Drupal/field/Tests/Number/NumberItemTest.php
similarity index 96%
rename from core/modules/number/lib/Drupal/number/Tests/NumberItemTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Number/NumberItemTest.php
index 5122028..b4faa80 100644
--- a/core/modules/number/lib/Drupal/number/Tests/NumberItemTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Number/NumberItemTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\number\Tests\NumberItemTest.
+ * Contains \Drupal\field\Tests\Number\NumberItemTest.
  */
 
-namespace Drupal\number\Tests;
+namespace Drupal\field\Tests\Number;
 
 use Drupal\Core\Field\FieldItemInterface;
 use Drupal\Core\Field\FieldItemListInterface;
@@ -21,7 +21,7 @@ class NumberItemTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('number');
+  public static $modules = array('field');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/Telephone/TelephoneFieldTest.php
similarity index 94%
rename from core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Telephone/TelephoneFieldTest.php
index e0fe150..bc0fbd1 100644
--- a/core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Telephone/TelephoneFieldTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\telephone\TelephoneFieldTest.
+ * Contains \Drupal\field\Tests\Telephone\TelephoneFieldTest.
  */
 
-namespace Drupal\telephone\Tests;
+namespace Drupal\field\Tests\Telephone;
 
 use Drupal\simpletest\WebTestBase;
 
@@ -19,11 +19,7 @@ class TelephoneFieldTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array(
-    'field',
-    'node',
-    'telephone'
-  );
+  public static $modules = array('field', 'node');
 
   protected $instance;
   protected $web_user;
diff --git a/core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneItemTest.php b/core/modules/field/lib/Drupal/field/Tests/Telephone/TelephoneItemTest.php
similarity index 93%
rename from core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneItemTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Telephone/TelephoneItemTest.php
index d2b6f11..f4c1d88 100644
--- a/core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneItemTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Telephone/TelephoneItemTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\field\Tests\TelephoneItemTest.
+ * Contains \Drupal\field\Tests\Telephone\TelephoneItemTest.
  */
 
-namespace Drupal\telephone\Tests;
+namespace Drupal\field\Tests\Telephone;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\FieldItemInterface;
@@ -21,7 +21,7 @@ class TelephoneItemTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('telephone');
+  public static $modules = array('field');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/text/lib/Drupal/text/Tests/TextFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/Text/TextFieldTest.php
similarity index 98%
rename from core/modules/text/lib/Drupal/text/Tests/TextFieldTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Text/TextFieldTest.php
index e1efa12..a491630 100644
--- a/core/modules/text/lib/Drupal/text/Tests/TextFieldTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Text/TextFieldTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\text\TextFieldTest.
+ * Contains \Drupal\field\Tests\Text\TextFieldTest.
  */
 
-namespace Drupal\text\Tests;
+namespace Drupal\field\Tests\Text;
 
 use Drupal\simpletest\WebTestBase;
 
@@ -19,7 +19,7 @@ class TextFieldTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity_test');
+  public static $modules = array('field', 'entity_test');
 
   protected $admin_user;
   protected $web_user;
diff --git a/core/modules/text/lib/Drupal/text/Tests/Formatter/TextPlainUnitTest.php b/core/modules/field/lib/Drupal/field/Tests/Text/TextPlainUnitTest.php
similarity index 97%
rename from core/modules/text/lib/Drupal/text/Tests/Formatter/TextPlainUnitTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Text/TextPlainUnitTest.php
index d1ff5d2..353467f 100644
--- a/core/modules/text/lib/Drupal/text/Tests/Formatter/TextPlainUnitTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Text/TextPlainUnitTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Tests\Formatter\TextPlainUnitTest.
+ * Contains \Drupal\field\Tests\Text\TextPlainUnitTest.
  */
 
-namespace Drupal\text\Tests\Formatter;
+namespace Drupal\field\Tests\Text;
 
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
@@ -26,7 +26,7 @@ class TextPlainUnitTest extends DrupalUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity', 'field', 'text', 'entity_test', 'system', 'filter', 'user');
+  public static $modules = array('entity', 'field', 'entity_test', 'system', 'filter', 'user');
 
   /**
    * Contains rendered content.
diff --git a/core/modules/text/lib/Drupal/text/Tests/TextSummaryTest.php b/core/modules/field/lib/Drupal/field/Tests/Text/TextSummaryTest.php
similarity index 98%
rename from core/modules/text/lib/Drupal/text/Tests/TextSummaryTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Text/TextSummaryTest.php
index b287a62..aaee03e 100644
--- a/core/modules/text/lib/Drupal/text/Tests/TextSummaryTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Text/TextSummaryTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Definition of Drupal\text\TextSummaryTest.
+ * Contains \Drupal\field\Tests\Text\TextSummaryTest.
  */
 
-namespace Drupal\text\Tests;
+namespace Drupal\field\Tests\Text;
 
 use Drupal\simpletest\DrupalUnitTestBase;
 
@@ -14,7 +14,7 @@
  */
 class TextSummaryTest extends DrupalUnitTestBase {
 
-  public static $modules = array('system', 'user', 'filter', 'text');
+  public static $modules = array('field', 'system', 'user', 'filter');
 
   public static function getInfo() {
     return array(
@@ -28,7 +28,7 @@ function setUp() {
     parent::setUp();
 
     $this->installSchema('system', 'url_alias');
-    $this->installConfig(array('text'));
+    $this->installConfig(array('field'));
   }
 
   /**
diff --git a/core/modules/text/lib/Drupal/text/Tests/TextWithSummaryItemTest.php b/core/modules/field/lib/Drupal/field/Tests/Text/TextWithSummaryItemTest.php
similarity index 96%
rename from core/modules/text/lib/Drupal/text/Tests/TextWithSummaryItemTest.php
rename to core/modules/field/lib/Drupal/field/Tests/Text/TextWithSummaryItemTest.php
index f325b85..58bf934 100644
--- a/core/modules/text/lib/Drupal/text/Tests/TextWithSummaryItemTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Text/TextWithSummaryItemTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\text\Tests\TextSummaryItemTest.
+ * Contains \Drupal\field\Tests\Text\TextSummaryItemTest.
  */
 
-namespace Drupal\text\Tests;
+namespace Drupal\field\Tests\Text;
 
 use Drupal\Core\Language\Language;
 use Drupal\Core\Field\FieldItemListInterface;
@@ -13,7 +13,7 @@
 use Drupal\field\Tests\FieldUnitTestBase;
 
 /**
- * Tests for \Drupal\text\Plugin\Field\FieldType\TextWithSummaryItem.
+ * Tests for \Drupal\field\Plugin\Field\FieldType\TextWithSummaryItem.
  */
 class TextWithSummaryItemTest extends FieldUnitTestBase {
 
@@ -22,7 +22,7 @@ class TextWithSummaryItemTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('filter');
+  public static $modules = array('field', 'filter');
 
   /**
    * Field entity.
diff --git a/core/modules/link/templates/link-formatter-link-separate.html.twig b/core/modules/field/templates/link-formatter-link-separate.html.twig
similarity index 100%
rename from core/modules/link/templates/link-formatter-link-separate.html.twig
rename to core/modules/field/templates/link-formatter-link-separate.html.twig
diff --git a/core/modules/hal/lib/Drupal/hal/Tests/NormalizerTestBase.php b/core/modules/hal/lib/Drupal/hal/Tests/NormalizerTestBase.php
index 99e8de7..4d32d1a 100644
--- a/core/modules/hal/lib/Drupal/hal/Tests/NormalizerTestBase.php
+++ b/core/modules/hal/lib/Drupal/hal/Tests/NormalizerTestBase.php
@@ -31,7 +31,7 @@
    *
    * @var array
    */
-  public static $modules = array('entity', 'entity_test', 'entity_reference', 'field', 'hal', 'language', 'rest', 'serialization', 'system', 'text', 'user', 'filter');
+  public static $modules = array('entity', 'entity_test', 'entity_reference', 'field', 'hal', 'language', 'rest', 'serialization', 'system', 'user', 'filter');
 
   /**
    * The mock serializer.
diff --git a/core/modules/link/link.info.yml b/core/modules/link/link.info.yml
deleted file mode 100644
index 509d2ba..0000000
--- a/core/modules/link/link.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: Link
-type: module
-description: 'Provides a simple link field type.'
-core: 8.x
-package: Field types
-version: VERSION
-dependencies:
-  - field
diff --git a/core/modules/link/link.module b/core/modules/link/link.module
deleted file mode 100644
index 0e830df..0000000
--- a/core/modules/link/link.module
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-/**
- * @file
- * Defines simple link field types.
- */
-
-use Drupal\Component\Utility\String;
-
-/**
- * Implements hook_help().
- */
-function link_help($path, $arg) {
-  switch ($path) {
-    case 'admin/help#link':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Link module allows you to create fields that contain external URLs and optional link text. See the <a href="!field">Field module help</a> and the <a href="!field_ui">Field UI help</a> pages for general information on fields and how to create and manage them. For more information, see the <a href="!link_documentation">online documentation for the Link module</a>.', array('!field' => \Drupal::url('help.page', array('name' => 'field')), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')), '!link_documentation' => 'https://drupal.org/documentation/modules/link')) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Managing and displaying link fields') . '</dt>';
-      $output .= '<dd>' . t('The <em>settings</em> and the <em>display</em> of the link field can be configured separately. See the <a href="!field_ui">Field UI help</a> for more information on how to manage fields and their display.', array('!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
-      $output .= '<dt>' . t('Adding link text') . '</dt>';
-      $output .= '<dd>' . t('In the field settings you can define additional link text to be <em>optional</em> or <em>required</em> in any link field.') . '</dd>';
-      $output .= '<dt>' . t('Displaying link text') . '</dt>';
-      $output .= '<dd>' . t('If link text has been submitted for a URL, then by default this link text is displayed as a link to the URL. If you want to display both the link text <em>and</em> the URL, choose the appropriate link format from the drop-down menu in the <em>Manage display</em> page. If you only want to display the URL even if link text has been submitted, choose <em>Link</em> as the format, and then change its <em>Format settings</em> to display <em>URL only</em>.') . '</dd>';
-      $output .= '<dt>' . t('Adding attributes to links') . '</dt>';
-      $output .= '<dd>' . t('You can add attributes to links, by changing the <em>Format settings</em> in the <em>Manage display</em> page. Adding <em>rel="nofollow"</em> notifies search engines that links should not be followed.') . '</dd>';
-      $output .= '<dt>' . t('Validating URLs') . '</dt>';
-      $output .= '<dd>' . t('All links are validated after a link field is filled in. They can include anchors or query strings. Links need to start with either the scheme name <em>http</em> or <em>https</em>; other scheme names (for example ftp or git) are not supported.') . '</dd>';
-      $output .= '</dl>';
-    return $output;
-  }
-}
-
-/**
- * Implements hook_theme().
- */
-function link_theme() {
-  return array(
-    'link_formatter_link_separate' => array(
-      'variables' => array('title' => NULL, 'url_title' => NULL, 'href' => NULL, 'options' => array()),
-      'template' => 'link-formatter-link-separate',
-    ),
-  );
-}
-
-/**
- * Prepares variables for separated link field templates.
- *
- * This template outputs a separate title and link.
- *
- * Default template: link-formatter-link-separate.html.twig.
- *
- * @param array $variables
- *   An associative array containing:
- *   - title: (optional) A descriptive or alternate title for the link, which
- *     may be different than the actual link text.
- *   - url_title: The anchor text for the link.
- *   - href: The link URL.
- *   - options: (optional) An array of options to pass to l().
- */
-function template_preprocess_link_formatter_link_separate(&$variables) {
-  if (!empty($variables['title'])) {
-    $variables['title'] = String::checkPlain($variables['title']);
-  }
-  $variables['link'] = l($variables['url_title'], $variables['href'], $variables['options']);
-}
diff --git a/core/modules/migrate_drupal/config/migrate.migration.d6_text_settings.yml b/core/modules/migrate_drupal/config/migrate.migration.d6_text_settings.yml
index fb5dea5..348a976 100644
--- a/core/modules/migrate_drupal/config/migrate.migration.d6_text_settings.yml
+++ b/core/modules/migrate_drupal/config/migrate.migration.d6_text_settings.yml
@@ -7,4 +7,4 @@ process:
   default_summary_length: teaser_length
 destination:
   plugin: d8_config
-  config_name: text.settings
+  config_name: field.settings
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6TextSettings.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6TextSettings.php
index 02ba13a..b3dfb7f 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6TextSettings.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6TextSettings.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Database\Connection;
 
 /**
- * Database dump for testing text.settings.yml migration.
+ * Database dump for testing field.settings.yml migration.
  */
 class Drupal6TextSettings {
 
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateTextConfigsTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateTextConfigsTest.php
index e47e99b..4a63dbd 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateTextConfigsTest.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateTextConfigsTest.php
@@ -21,21 +21,21 @@ class MigrateTextConfigsTest extends MigrateDrupalTestBase {
    *
    * @var array
    */
-  public static $modules = array('text');
+  public static $modules = array('field');
 
   /**
    * {@inheritdoc}
    */
   public static function getInfo() {
     return array(
-      'name'  => 'Migrate variables to text.settings.yml',
-      'description'  => 'Upgrade variables to text.settings.yml',
+      'name'  => 'Migrate variables to field.settings.yml',
+      'description'  => 'Upgrade variables to field.settings.yml',
       'group' => 'Migrate Drupal',
     );
   }
 
   /**
-   * Tests migration of text variables to text.settings.yml.
+   * Tests migration of text variables to field.settings.yml.
    */
   public function testTextSettings() {
     $migration = entity_load('migration', 'd6_text_settings');
@@ -45,7 +45,7 @@ public function testTextSettings() {
     $this->prepare($migration, $dumps);
     $executable = new MigrateExecutable($migration, new MigrateMessage());
     $executable->import();
-    $config = \Drupal::config('text.settings');
+    $config = \Drupal::config('field.settings');
     $this->assertIdentical($config->get('default_summary_length'), 600);
   }
 
diff --git a/core/modules/node/lib/Drupal/node/Tests/Config/NodeImportChangeTest.php b/core/modules/node/lib/Drupal/node/Tests/Config/NodeImportChangeTest.php
index bdd2b92..5fd613d 100644
--- a/core/modules/node/lib/Drupal/node/Tests/Config/NodeImportChangeTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/Config/NodeImportChangeTest.php
@@ -19,7 +19,7 @@ class NodeImportChangeTest extends DrupalUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'entity', 'field', 'text', 'system', 'node_test_config', 'user');
+  public static $modules = array('node', 'entity', 'field', 'system', 'node_test_config', 'user');
 
   /**
    * Set the default field storage backend for fields created during tests.
diff --git a/core/modules/node/lib/Drupal/node/Tests/Config/NodeImportCreateTest.php b/core/modules/node/lib/Drupal/node/Tests/Config/NodeImportCreateTest.php
index 1d59ca1..de4f48b 100644
--- a/core/modules/node/lib/Drupal/node/Tests/Config/NodeImportCreateTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/Config/NodeImportCreateTest.php
@@ -19,7 +19,7 @@ class NodeImportCreateTest extends DrupalUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'entity', 'field', 'text', 'system', 'user');
+  public static $modules = array('node', 'entity', 'field', 'system', 'user');
 
   /**
    * Set the default field storage backend for fields created during tests.
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeLastChangedTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeLastChangedTest.php
index bf23498..76839a7 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeLastChangedTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeLastChangedTest.php
@@ -19,7 +19,7 @@ class NodeLastChangedTest extends DrupalUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity', 'user', 'node', 'field', 'text', 'filter');
+  public static $modules = array('entity', 'user', 'node', 'field', 'filter');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/node/node.info.yml b/core/modules/node/node.info.yml
index e61b363..cbe615f 100644
--- a/core/modules/node/node.info.yml
+++ b/core/modules/node/node.info.yml
@@ -6,4 +6,4 @@ version: VERSION
 core: 8.x
 configure: node.overview_types
 dependencies:
-  - text
+  - field
diff --git a/core/modules/number/number.info.yml b/core/modules/number/number.info.yml
deleted file mode 100644
index 21a37a7..0000000
--- a/core/modules/number/number.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: Number
-type: module
-description: 'Defines numeric field types.'
-package: Field types
-version: VERSION
-core: 8.x
-dependencies:
-  - field
diff --git a/core/modules/number/number.module b/core/modules/number/number.module
deleted file mode 100644
index abe2b45..0000000
--- a/core/modules/number/number.module
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @file
- * Defines numeric field types.
- */
-
-/**
- * Implements hook_help().
- */
-function number_help($path, $arg) {
-  switch ($path) {
-    case 'admin/help#number':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Number module allows you to create fields that contain various types of numeric data. See the <a href="!field">Field module help</a> and the <a href="!field_ui">Field UI help</a> pages for general information on fields and how to create and manage them. For more information, see the <a href="!number_do">online documentation for the Number module</a>.', array('!field' => \Drupal::url('help.page', array('name' => 'field')), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')), '!number_do' => 'https://drupal.org/documentation/modules/number')) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Managing and displaying number fields') . '</dt>';
-      $output .= '<dd>' . t('The <em>settings</em> and the <em>display</em> of the number fields can be configured separately. See the <a href="!field_ui">Field UI help</a> for more information on how to manage fields and their display.', array('!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
-      $output .= '<dt>' . t('Choosing number field type') . '</dt>';
-      $output .= '<dd>' . t('When you add a number field you can choose from three types: <em>decimal</em>, <em>float</em>, or <em>integer</em>. The <em>decimal</em> number field type allows users to enter exact decimal values. The <em>float</em> number field type allows users to enter approximate decimal values. The <em>integer</em> number field type allows users to enter whole numbers, such as years (for example, 2012) or values (for example, 1, 2, 5, 305). It does not allow decimals.') . '</dd>';
-      $output .= '</dl>';
-      return $output;
-  }
-}
diff --git a/core/modules/options/options.info.yml b/core/modules/options/options.info.yml
index 1d35ece..197ea24 100644
--- a/core/modules/options/options.info.yml
+++ b/core/modules/options/options.info.yml
@@ -6,5 +6,3 @@ version: VERSION
 core: 8.x
 dependencies:
   - field
-  - text
-  - number
diff --git a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaDatatypeCallbackTest.php b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaDatatypeCallbackTest.php
index 944082d..29cebc1 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaDatatypeCallbackTest.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/FieldRdfaDatatypeCallbackTest.php
@@ -19,7 +19,7 @@ class FieldRdfaDatatypeCallbackTest extends FieldRdfaTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = array('text', 'filter');
+  public static $modules = array('field', 'filter');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TaxonomyTermReferenceRdfaTest.php b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TaxonomyTermReferenceRdfaTest.php
index 09b2c87..6a7f7e5 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TaxonomyTermReferenceRdfaTest.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TaxonomyTermReferenceRdfaTest.php
@@ -37,7 +37,7 @@ class TaxonomyTermReferenceRdfaTest extends FieldRdfaTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = array('taxonomy', 'options', 'text', 'filter');
+  public static $modules = array('field', 'taxonomy', 'options', 'filter');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TextFieldRdfaTest.php b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TextFieldRdfaTest.php
index b350b95..ca68878 100644
--- a/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TextFieldRdfaTest.php
+++ b/core/modules/rdf/lib/Drupal/rdf/Tests/Field/TextFieldRdfaTest.php
@@ -35,7 +35,7 @@ class TextFieldRdfaTest extends FieldRdfaTestBase {
   /**
   * {@inheritdoc}
   */
-  public static $modules = array('text');
+  public static $modules = array('field');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/rest/lib/Drupal/rest/Tests/Views/StyleSerializerTest.php b/core/modules/rest/lib/Drupal/rest/Tests/Views/StyleSerializerTest.php
index 5903780..2d1dcb1 100644
--- a/core/modules/rest/lib/Drupal/rest/Tests/Views/StyleSerializerTest.php
+++ b/core/modules/rest/lib/Drupal/rest/Tests/Views/StyleSerializerTest.php
@@ -25,7 +25,7 @@ class StyleSerializerTest extends PluginTestBase {
    *
    * @var array
    */
-  public static $modules = array('views_ui', 'entity_test', 'hal', 'rest_test_views', 'node', 'text', 'field');
+  public static $modules = array('views_ui', 'entity_test', 'hal', 'rest_test_views', 'node', 'field');
 
   /**
    * Views used by this test.
diff --git a/core/modules/serialization/lib/Drupal/serialization/Tests/NormalizerTestBase.php b/core/modules/serialization/lib/Drupal/serialization/Tests/NormalizerTestBase.php
index 3b0cfd6..3a54683 100644
--- a/core/modules/serialization/lib/Drupal/serialization/Tests/NormalizerTestBase.php
+++ b/core/modules/serialization/lib/Drupal/serialization/Tests/NormalizerTestBase.php
@@ -16,7 +16,7 @@
    *
    * @var array
    */
-  public static $modules = array('serialization', 'system', 'entity', 'field', 'entity_test', 'text', 'filter', 'user');
+  public static $modules = array('serialization', 'system', 'entity', 'field', 'entity_test', 'filter', 'user');
 
   protected function setUp() {
     parent::setUp();
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/Tests/DrupalUnitTestBaseTest.php b/core/modules/simpletest/lib/Drupal/simpletest/Tests/DrupalUnitTestBaseTest.php
index 2acf138..d41fd14 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/Tests/DrupalUnitTestBaseTest.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/Tests/DrupalUnitTestBaseTest.php
@@ -207,7 +207,7 @@ function testEnableModulesFixedList() {
     $this->assertTrue(TRUE == $entity_manager->getDefinition('entity_test'));
 
     // Load some additional modules; entity_test should still exist.
-    $this->enableModules(array('entity', 'field', 'text', 'entity_test'));
+    $this->enableModules(array('entity', 'field', 'entity_test'));
     $this->assertEqual($this->container->get('module_handler')->moduleExists('entity_test'), TRUE);
     $this->assertTrue(TRUE == $entity_manager->getDefinition('entity_test'));
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/BundleConstraintValidatorTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/BundleConstraintValidatorTest.php
index b26b0fc..c66b715 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/BundleConstraintValidatorTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/BundleConstraintValidatorTest.php
@@ -23,7 +23,7 @@ class BundleConstraintValidatorTest extends DrupalUnitTestBase {
    */
   protected $typedData;
 
-  public static $modules = array('entity', 'node', 'field', 'text', 'user');
+  public static $modules = array('entity', 'node', 'field', 'user');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
index 2ea38e9..bf88eee 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
@@ -26,7 +26,7 @@ class EntityFieldTest extends EntityUnitTestBase  {
    *
    * @var array
    */
-  public static $modules = array('filter', 'text', 'node');
+  public static $modules = array('field', 'filter', 'node');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryAggregateTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryAggregateTest.php
index ea75ff7..75645747 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryAggregateTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryAggregateTest.php
@@ -18,7 +18,7 @@ class EntityQueryAggregateTest extends EntityUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('number');
+  public static $modules = array('field');
 
   /**
    * The entity_test storage controller to create the test entities.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitTestBase.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitTestBase.php
index 8537fbb..27d1ba2 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitTestBase.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityUnitTestBase.php
@@ -20,7 +20,7 @@
    *
    * @var array
    */
-  public static $modules = array('entity', 'user', 'system', 'field', 'text', 'filter', 'entity_test');
+  public static $modules = array('entity', 'user', 'system', 'field', 'filter', 'entity_test');
 
   /**
    * The entity manager service.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityValidationTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityValidationTest.php
index f88f281..53001fe 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityValidationTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityValidationTest.php
@@ -22,7 +22,7 @@ class EntityValidationTest extends EntityUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('filter', 'text');
+  public static $modules = array('field', 'filter');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/FieldAccessTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldAccessTest.php
index 7395dfa..bb8669b 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/FieldAccessTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldAccessTest.php
@@ -19,7 +19,7 @@ class FieldAccessTest extends DrupalUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity', 'entity_test', 'field', 'system', 'text', 'filter', 'user');
+  public static $modules = array('entity', 'entity_test', 'field', 'system', 'filter', 'user');
 
   /**
    * Holds the currently active global user ID that initiated the test run.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/FieldSqlStorageTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldSqlStorageTest.php
index ea24d9b..f65f41a 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/FieldSqlStorageTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldSqlStorageTest.php
@@ -26,7 +26,7 @@ class FieldSqlStorageTest extends EntityUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('field', 'field_test', 'text', 'number', 'entity_test');
+  public static $modules = array('field', 'field_test', 'entity_test');
 
   /**
    * The name of the created field.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php b/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php
index 97c8130..f77a0b2 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Form/ArbitraryRebuildTest.php
@@ -19,7 +19,7 @@ class ArbitraryRebuildTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('text', 'form_test');
+  public static $modules = array('field', 'form_test');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php b/core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php
index 907741e..6e91e18 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php
@@ -122,13 +122,10 @@ function testModuleEnableOrder() {
     // module_test creates a dependency chain:
     // - forum depends on node, taxonomy, comment, datetime, history, and
     //   ban (via module_test)
-    // - node depends on text
-    // - text depends on filter
     // - taxonomy depends on options
-    // - options depends on number
     // - ban depends on xmlrpc (via module_test)
     // The correct enable order is:
-    $expected_order = array('filter', 'xmlrpc', 'ban', 'text', 'node', 'datetime', 'comment', 'history', 'number', 'options', 'taxonomy', 'forum');
+    $expected_order = array('xmlrpc', 'ban', 'node', 'datetime', 'comment', 'history', 'options', 'taxonomy', 'forum');
 
     // Enable the modules through the UI, verifying that the dependency chain
     // is correct.
@@ -136,20 +133,17 @@ function testModuleEnableOrder() {
     $edit['modules[Core][forum][enable]'] = 'forum';
     $this->drupalPostForm('admin/modules', $edit, t('Save configuration'));
     $this->assertModules(array('forum'), FALSE);
-    $this->assertText(t('You must enable the Node, Text, Filter, History, Taxonomy, Options, Number, Comment, Datetime, Ban, XML-RPC modules to install Forum.'));
+    $this->assertText(t('You must enable the Node, History, Taxonomy, Options, Comment, Datetime, Ban, XML-RPC modules to install Forum.'));
     $edit['modules[Core][node][enable]'] = 'node';
-    $edit['modules[Field types][text][enable]'] = 'text';
-    $edit['modules[Core][filter][enable]'] = 'filter';
     $edit['modules[Core][history][enable]'] = 'history';
     $edit['modules[Field types][options][enable]'] = 'options';
-    $edit['modules[Field types][number][enable]'] = 'number';
     $edit['modules[Core][taxonomy][enable]'] = 'taxonomy';
     $edit['modules[Core][comment][enable]'] = 'comment';
     $edit['modules[Field types][datetime][enable]'] = 'datetime';
     $edit['modules[Core][ban][enable]'] = 'ban';
     $edit['modules[Core][xmlrpc][enable]'] = 'xmlrpc';
     $this->drupalPostForm('admin/modules', $edit, t('Save configuration'));
-    $this->assertModules(array('forum', 'ban', 'node', 'text', 'filter', 'xmlrpc', 'datetime', 'comment', 'history', 'taxonomy', 'options', 'number'), TRUE);
+    $this->assertModules(array('forum', 'ban', 'node', 'xmlrpc', 'datetime', 'comment', 'history', 'taxonomy', 'options'), TRUE);
 
     // Check the actual order which is saved by module_test_modules_enabled().
     $module_order = \Drupal::state()->get('module_test.install_order') ?: array();
diff --git a/core/modules/system/lib/Drupal/system/Tests/Plugin/ContextPluginTest.php b/core/modules/system/lib/Drupal/system/Tests/Plugin/ContextPluginTest.php
index 6f3bd49..61f7a21 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Plugin/ContextPluginTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Plugin/ContextPluginTest.php
@@ -17,7 +17,7 @@
  */
 class ContextPluginTest extends DrupalUnitTestBase {
 
-  public static $modules = array('system', 'user', 'node', 'field', 'filter', 'text');
+  public static $modules = array('system', 'user', 'node', 'field', 'filter');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.info.yml b/core/modules/system/tests/modules/entity_test/entity_test.info.yml
index 5bea26a..cb76982 100644
--- a/core/modules/system/tests/modules/entity_test/entity_test.info.yml
+++ b/core/modules/system/tests/modules/entity_test/entity_test.info.yml
@@ -6,5 +6,4 @@ version: VERSION
 core: 8.x
 dependencies:
   - field
-  - text
 hidden: true
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermReferenceItemTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermReferenceItemTest.php
index 63b6fd1..eeea31f 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermReferenceItemTest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyTermReferenceItemTest.php
@@ -23,7 +23,7 @@ class TaxonomyTermReferenceItemTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('taxonomy', 'options', 'text', 'filter');
+  public static $modules = array('field', 'taxonomy', 'options', 'filter');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/taxonomy/taxonomy.info.yml b/core/modules/taxonomy/taxonomy.info.yml
index c559074..4814953 100644
--- a/core/modules/taxonomy/taxonomy.info.yml
+++ b/core/modules/taxonomy/taxonomy.info.yml
@@ -5,7 +5,7 @@ package: Core
 version: VERSION
 core: 8.x
 dependencies:
+  - field
   - node
   - options
-  - text
 configure: taxonomy.vocabulary_list
diff --git a/core/modules/telephone/telephone.info.yml b/core/modules/telephone/telephone.info.yml
deleted file mode 100644
index 3e27ccb..0000000
--- a/core/modules/telephone/telephone.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: Telephone
-type: module
-description: 'Defines a field type for telephone numbers.'
-package: Field types
-version: VERSION
-core: 8.x
-dependencies:
-  - field
diff --git a/core/modules/telephone/telephone.module b/core/modules/telephone/telephone.module
deleted file mode 100644
index 23099a9..0000000
--- a/core/modules/telephone/telephone.module
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/**
- * @file
- * Defines a simple telephone number field type.
- */
-
-/**
- * Implements hook_help().
- */
-function telephone_help($path, $arg) {
-  switch ($path) {
-    case 'admin/help#telephone':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Telephone module allows you to create fields that contain telephone numbers. See the <a href="!field">Field module help</a> and the <a href="!field_ui">Field UI help</a> pages for general information on fields and how to create and manage them. For more information, see the <a href="!telephone_documentation">online documentation for the Telephone module</a>.', array('!field' => \Drupal::url('help.page', array('name' => 'field')), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')), '!telephone_documentation' => 'https://drupal.org/documentation/modules/telephone')) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Managing and displaying telephone fields') . '</dt>';
-      $output .= '<dd>' . t('The <em>settings</em> and the <em>display</em> of the telephone field can be configured separately. See the <a href="!field_ui">Field UI help</a> for more information on how to manage fields and their display.', array('!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
-      $output .= '<dt>' . t('Displaying telephone numbers as links') . '</dt>';
-      $output .= '<dd>' . t('Telephone numbers can be displayed as links with the scheme name <em>tel:</em> by choosing the <em>Telephone</em> display format on the <em>Manage display</em> page. Any spaces will be stripped out of the link text.') . '</dd>';
-      $output .= '</dl>';
-      return $output;
-  }
-}
-
-/**
- * Implements hook_field_info_alter().
- */
-function telephone_field_info_alter(&$info) {
-  if (\Drupal::moduleHandler()->moduleExists('text')) {
-    $info['telephone']['default_formatter'] = 'text_plain';
-  }
-}
-
-
-/**
- * Implements hook_field_formatter_info_alter().
- */
-function telephone_field_formatter_info_alter(&$info) {
-  if (isset($info['text_plain'])) {
-    $info['text_plain']['field_types'][] = 'telephone';
-  }
-}
diff --git a/core/modules/text/config/text.settings.yml b/core/modules/text/config/text.settings.yml
deleted file mode 100644
index 1ff3cbc..0000000
--- a/core/modules/text/config/text.settings.yml
+++ /dev/null
@@ -1 +0,0 @@
-default_summary_length: 600
diff --git a/core/modules/text/text.info.yml b/core/modules/text/text.info.yml
deleted file mode 100644
index 71f45bd..0000000
--- a/core/modules/text/text.info.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-name: Text
-type: module
-description: 'Defines simple text field types.'
-package: Field types
-version: VERSION
-core: 8.x
-dependencies:
-  - field
-  - filter
diff --git a/core/modules/text/text.module b/core/modules/text/text.module
deleted file mode 100644
index b0eb8fa..0000000
--- a/core/modules/text/text.module
+++ /dev/null
@@ -1,192 +0,0 @@
-<?php
-
-/**
- * @file
- * Defines simple text field types.
- */
-
-use Drupal\Component\Utility\Html;
-use Drupal\Core\Entity\EntityInterface;
-
-/**
- * Implements hook_library_info().
- */
-function text_library_info() {
-  $libraries['drupal.text'] = array(
-    'title' => 'Text',
-    'version' => \Drupal::VERSION,
-    'js' => array(
-      drupal_get_path('module', 'text') . '/text.js' => array(),
-    ),
-    'dependencies' => array(
-      array('system', 'jquery'),
-      array('system', 'jquery.once'),
-      array('system', 'drupal'),
-    ),
-  );
-
-  return $libraries;
-}
-
-/**
- * Implements hook_help().
- */
-function text_help($path, $arg) {
-  switch ($path) {
-    case 'admin/help#text':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Text module allows you to create short and long text fields with optional summaries. See the <a href="!field">Field module help</a> and the <a href="!field_ui">Field UI help</a> pages for general information on fields and how to create and manage them. For more information, see the <a href="!text_documentation">online documentation for the Text module</a>.', array('!field' => \Drupal::url('help.page', array('name' => 'field')), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')), '!text_documentation' => 'https://drupal.org/documentation/modules/text')) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Managing and displaying text fields') . '</dt>';
-      $output .= '<dd>' . t('The <em>settings</em> and <em>display</em> of the text field can be configured separately. See the <a href="!field_ui">Field UI help</a> for more information on how to manage fields and their display.', array('!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
-      $output .= '<dt>' . t('Creating short text fields') . '</dt>';
-      $output .= '<dd>' . t('If you choose <em>Text</em> as the field type on the <em>Manage fields</em> page, then a field with a single row is displayed. You can change the maximum text length in the <em>Field settings</em> when you set up the field.') . '</dd>';
-      $output .= '<dt>' . t('Creating long text fields') . '</dt>';
-      $output .= '<dd>' . t('If you choose <em>Long text</em> or <em>Long text and summary</em> on the <em>Manage fields</em> page, then users can insert text of unlimited length. On the <em>Manage form display</em> page, you can set the number of rows that are displayed to users.') . '</dd>';
-      $output .= '<dt>' . t('Trimming the text length') . '</dt>';
-      $output .= '<dd>' . t('On the <em>Manage display</em> page you can choose to display a trimmed version of the text, and if so, where to cut off the text.') . '</dd>';
-      $output .= '<dt>' . t('Displaying summaries instead of trimmed text') . '</dt>';
-      $output .= '<dd>' . t('As an alternative to using a trimmed version of the text, you can enter a separate summary by choosing the <em>Long text with summary</em> field type on the <em>Manage fields</em> page. Even when <em>Summary input</em> is enabled, and summaries are provided, you can display <em>trimmed</em> text nonetheless by choosing the appropriate format on the <em>Manage display</em> page.') . '</dd>';
-      $output .= '<dt>' . t('Using text formats and editors') . '</dt>';
-      $output .= '<dd>' . t('With the <em>Text processing</em> options you can restrict the input to <em>Plain text</em> only, or allow users to format text. Which options are available to individual users depends on the settings on the <a href="!formats">Text formats and editors page</a>. If formatted text is submitted, you can still display it without the formatting by choosing <em>Plain text</em> as the <em>Format</em> on the <em>Manage display</em> page.', array('!formats' => \Drupal::url('filter.admin_overview'))) . '</dd>';
-      $output .= '</dl>';
-    return $output;
-  }
-}
-
-/**
- * Generates a trimmed, formatted version of a text field value.
- *
- * If the end of the summary is not indicated using the <!--break--> delimiter
- * then we generate the summary automatically, trying to end it at a sensible
- * place such as the end of a paragraph, a line break, or the end of a sentence
- * (in that order of preference).
- *
- * @param $text
- *   The content for which a summary will be generated.
- * @param $format
- *   The format of the content. If the line break filter is present then we
- *   treat newlines embedded in $text as line breaks. If the htmlcorrector
- *   filter is present, it will be run on the generated summary (if different
- *   from the incoming $text).
- * @param $size
- *   The desired character length of the summary. If omitted, the default value
- *   will be used. Ignored if the special delimiter is present in $text.
- *
- * @return
- *   The generated summary.
- */
-function text_summary($text, $format = NULL, $size = NULL) {
-
-  if (!isset($size)) {
-    $size = \Drupal::config('text.settings')->get('default_summary_length');
-  }
-
-  // Find where the delimiter is in the body
-  $delimiter = strpos($text, '<!--break-->');
-
-  // If the size is zero, and there is no delimiter, the entire body is the summary.
-  if ($size == 0 && $delimiter === FALSE) {
-    return $text;
-  }
-
-  // If a valid delimiter has been specified, use it to chop off the summary.
-  if ($delimiter !== FALSE) {
-    return substr($text, 0, $delimiter);
-  }
-
-  // Retrieve the filters of the specified text format, if any.
-  if (isset($format)) {
-    $filters = entity_load('filter_format', $format)->filters();
-    // If the specified format does not exist, return nothing. $text is already
-    // filtered text, but the remainder of this function will not be able to
-    // ensure a sane and secure summary.
-    if (!$filters) {
-      return '';
-    }
-  }
-
-  // If we have a short body, the entire body is the summary.
-  if (drupal_strlen($text) <= $size) {
-    return $text;
-  }
-
-  // If the delimiter has not been specified, try to split at paragraph or
-  // sentence boundaries.
-
-  // The summary may not be longer than maximum length specified. Initial slice.
-  $summary = truncate_utf8($text, $size);
-
-  // Store the actual length of the UTF8 string -- which might not be the same
-  // as $size.
-  $max_rpos = strlen($summary);
-
-  // How much to cut off the end of the summary so that it doesn't end in the
-  // middle of a paragraph, sentence, or word.
-  // Initialize it to maximum in order to find the minimum.
-  $min_rpos = $max_rpos;
-
-  // Store the reverse of the summary. We use strpos on the reversed needle and
-  // haystack for speed and convenience.
-  $reversed = strrev($summary);
-
-  // Build an array of arrays of break points grouped by preference.
-  $break_points = array();
-
-  // A paragraph near the end of sliced summary is most preferable.
-  $break_points[] = array('</p>' => 0);
-
-  // If no complete paragraph then treat line breaks as paragraphs.
-  $line_breaks = array('<br />' => 6, '<br>' => 4);
-  // Newline only indicates a line break if line break converter
-  // filter is present.
-  if (isset($format) && $filters->has('filter_autop') && $filters->get('filter_autop')->status) {
-    $line_breaks["\n"] = 1;
-  }
-  $break_points[] = $line_breaks;
-
-  // If the first paragraph is too long, split at the end of a sentence.
-  $break_points[] = array('. ' => 1, '! ' => 1, '? ' => 1, '。' => 0, '؟ ' => 1);
-
-  // Iterate over the groups of break points until a break point is found.
-  foreach ($break_points as $points) {
-    // Look for each break point, starting at the end of the summary.
-    foreach ($points as $point => $offset) {
-      // The summary is already reversed, but the break point isn't.
-      $rpos = strpos($reversed, strrev($point));
-      if ($rpos !== FALSE) {
-        $min_rpos = min($rpos + $offset, $min_rpos);
-      }
-    }
-
-    // If a break point was found in this group, slice and stop searching.
-    if ($min_rpos !== $max_rpos) {
-      // Don't slice with length 0. Length must be <0 to slice from RHS.
-      $summary = ($min_rpos === 0) ? $summary : substr($summary, 0, 0 - $min_rpos);
-      break;
-    }
-  }
-
-  // If the htmlcorrector filter is present, apply it to the generated summary.
-  if (isset($format) && $filters->has('filter_htmlcorrector') && $filters->get('filter_htmlcorrector')->status) {
-    $summary = Html::normalize($summary);
-  }
-
-  return $summary;
-}
-
-/**
- * Implements hook_filter_format_update().
- */
-function text_filter_format_update($format) {
-  field_cache_clear();
-}
-
-/**
- * Implements hook_filter_format_disable().
- */
-function text_filter_format_disable($format) {
-  field_cache_clear();
-}
diff --git a/core/modules/views/lib/Drupal/views/Tests/Entity/RowEntityRenderersTest.php b/core/modules/views/lib/Drupal/views/Tests/Entity/RowEntityRenderersTest.php
index 235e5a5..42d6953 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Entity/RowEntityRenderersTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Entity/RowEntityRenderersTest.php
@@ -23,7 +23,7 @@ class RowEntityRenderersTest extends ViewUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity', 'field', 'filter', 'text', 'node', 'user', 'language');
+  public static $modules = array('entity', 'field', 'filter', 'node', 'user', 'language');
 
   /**
    * Views used by this test.
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/RowEntityTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/RowEntityTest.php
index 807880a..9524317 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/RowEntityTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/RowEntityTest.php
@@ -21,7 +21,7 @@ class RowEntityTest extends ViewUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('taxonomy', 'text', 'filter', 'field', 'entity', 'system');
+  public static $modules = array('taxonomy', 'filter', 'field', 'entity', 'system');
 
   /**
    * Views used by this test.
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewExecutableTest.php b/core/modules/views/lib/Drupal/views/Tests/ViewExecutableTest.php
index 3d06758..909ca0a 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewExecutableTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewExecutableTest.php
@@ -29,7 +29,7 @@
  */
 class ViewExecutableTest extends ViewUnitTestBase {
 
-  public static $modules = array('system', 'node', 'comment', 'user', 'filter', 'entity', 'field', 'field_sql_storage', 'text');
+  public static $modules = array('system', 'node', 'comment', 'user', 'filter', 'entity', 'field', 'field_sql_storage');
 
   /**
    * Views used by this test.
diff --git a/core/profiles/standard/standard.info.yml b/core/profiles/standard/standard.info.yml
index ba41dd5..26bef95 100644
--- a/core/profiles/standard/standard.info.yml
+++ b/core/profiles/standard/standard.info.yml
@@ -22,7 +22,6 @@ dependencies:
   - help
   - image
   - menu
-  - number
   - options
   - path
   - taxonomy
