diff --git a/core/modules/user/src/Tests/UserRoleDeleteTest.php b/core/modules/user/src/Tests/UserRoleDeleteTest.php
index 81396ac..b1d13c3 100644
--- a/core/modules/user/src/Tests/UserRoleDeleteTest.php
+++ b/core/modules/user/src/Tests/UserRoleDeleteTest.php
@@ -7,7 +7,9 @@
 
 namespace Drupal\user\Tests;
 
+use Drupal\Component\Utility\Unicode;
 use Drupal\simpletest\KernelTestBase;
+use Drupal\user\Entity\Role;
 use Drupal\user\Entity\User;
 
 /**
@@ -76,4 +78,28 @@ public function testRoleDeleteUserRoleReferenceDelete() {
 
   }
 
+  /**
+   * Tests user_roles() static cache invalidation on role deletion.
+   *
+   * @see user_roles()
+   */
+  public function testStaticCacheInvalidation() {
+    $role = Role::create([
+      'id' => Unicode::strtolower($this->randomMachineName())
+    ]);
+    $role->save();
+
+    // Load all roles using user_role().
+    $roles = user_roles();
+    // The user role $role is in the 'all roles' list.
+    $this->assertTrue(isset($roles[$role->id()]));
+
+    // Delete the role.
+    $role->delete();
+    // Reload all roles.
+    $roles = user_roles();
+    // The user role $role should not be in the list anymore.
+    $this->assertFalse(isset($roles[$role->id()]));
+  }
+
 }
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 73b9413..d025656 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -1050,17 +1050,6 @@ function user_user_role_delete(RoleInterface $role) {
  *   value.
  */
 function user_roles($membersonly = FALSE, $permission = NULL) {
-  $user_roles = &drupal_static(__FUNCTION__);
-
-  // Do not cache roles for specific permissions. This data is not requested
-  // frequently enough to justify the additional memory use.
-  if (empty($permission)) {
-    $cid = $membersonly ? RoleInterface::AUTHENTICATED_ID : RoleInterface::ANONYMOUS_ID;
-    if (isset($user_roles[$cid])) {
-      return $user_roles[$cid];
-    }
-  }
-
   $roles = Role::loadMultiple();
   if ($membersonly) {
     unset($roles[RoleInterface::ANONYMOUS_ID]);
@@ -1072,10 +1061,6 @@ function user_roles($membersonly = FALSE, $permission = NULL) {
     });
   }
 
-  if (empty($permission)) {
-    $user_roles[$cid] = $roles;
-  }
-
   return $roles;
 }
 
