Index: src/wp-admin/includes/class-wp-terms-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-terms-list-table.php	(revision 47614)
+++ src/wp-admin/includes/class-wp-terms-list-table.php	(working copy)
@@ -399,7 +399,7 @@
 
 		$uri = wp_doing_ajax() ? wp_get_referer() : $_SERVER['REQUEST_URI'];
 
-		$edit_link = get_edit_term_link( $tag->term_id, $taxonomy, $this->screen->post_type );
+		$edit_link = get_edit_term_link( $tag, $taxonomy, $this->screen->post_type );
 
 		if ( $edit_link ) {
 			$edit_link = add_query_arg(
@@ -465,7 +465,7 @@
 		$edit_link = add_query_arg(
 			'wp_http_referer',
 			urlencode( wp_unslash( $uri ) ),
-			get_edit_term_link( $tag->term_id, $taxonomy, $this->screen->post_type )
+			get_edit_term_link( $tag, $taxonomy, $this->screen->post_type )
 		);
 
 		$actions = array();
Index: src/wp-includes/category-template.php
===================================================================
--- src/wp-includes/category-template.php	(revision 47614)
+++ src/wp-includes/category-template.php	(working copy)
@@ -714,9 +714,9 @@
 
 	foreach ( $tags as $key => $tag ) {
 		if ( 'edit' == $args['link'] ) {
-			$link = get_edit_term_link( $tag->term_id, $tag->taxonomy, $args['post_type'] );
+			$link = get_edit_term_link( $tag, $tag->taxonomy, $args['post_type'] );
 		} else {
-			$link = get_term_link( intval( $tag->term_id ), $tag->taxonomy );
+			$link = get_term_link( $tag, $tag->taxonomy );
 		}
 
 		if ( is_wp_error( $link ) ) {
Index: src/wp-includes/class-walker-category.php
===================================================================
--- src/wp-includes/class-walker-category.php	(revision 47614)
+++ src/wp-includes/class-walker-category.php	(working copy)
@@ -158,7 +158,7 @@
 				$link .= '(';
 			}
 
-			$link .= '<a href="' . esc_url( get_term_feed_link( $category->term_id, $category->taxonomy, $args['feed_type'] ) ) . '"';
+			$link .= '<a href="' . esc_url( get_term_feed_link( $category, $category->taxonomy, $args['feed_type'] ) ) . '"';
 
 			if ( empty( $args['feed'] ) ) {
 				/* translators: %s: Category name. */
Index: src/wp-includes/link-template.php
===================================================================
--- src/wp-includes/link-template.php	(revision 47614)
+++ src/wp-includes/link-template.php	(working copy)
@@ -828,13 +828,13 @@
  *
  * @since 2.5.0
  *
- * @param int    $cat_id Category ID.
- * @param string $feed   Optional. Feed type. Possible values include 'rss2', 'atom'.
- *                       Default is the value of get_default_feed().
+ * @param int|WP_Term|object $cat The ID or term object whose feed link will be retrieved.
+ * @param string $feed            Optional. Feed type. Possible values include 'rss2', 'atom'.
+ *                                Default is the value of get_default_feed().
  * @return string Link to the feed for the category specified by $cat_id.
  */
-function get_category_feed_link( $cat_id, $feed = '' ) {
-	return get_term_feed_link( $cat_id, 'category', $feed );
+function get_category_feed_link( $cat, $feed = '' ) {
+	return get_term_feed_link( $cat, 'category', $feed );
 }
 
 /**
@@ -845,16 +845,22 @@
  *
  * @since 3.0.0
  *
- * @param int    $term_id  Term ID.
- * @param string $taxonomy Optional. Taxonomy of `$term_id`. Default 'category'.
- * @param string $feed     Optional. Feed type. Possible values include 'rss2', 'atom'.
- *                         Default is the value of get_default_feed().
+ * @param int|WP_Term|object $term The ID or term object whose feed link will be retrieved.
+ * @param string $taxonomy         Optional. Taxonomy of `$term_id`.
+ *                                 Defaults to 'category' if term ID or non WP_Term object is passed.
+ * @param string $feed             Optional. Feed type. Possible values include 'rss2', 'atom'.
+ *                                 Default is the value of get_default_feed().
  * @return string|false Link to the feed for the term specified by $term_id and $taxonomy.
  */
-function get_term_feed_link( $term_id, $taxonomy = 'category', $feed = '' ) {
-	$term_id = (int) $term_id;
+function get_term_feed_link( $term, $taxonomy = '', $feed = '' ) {
+	if ( ! is_object( $term ) ) {
+		$term = (int) $term;
+		$taxonomy = 'category';
+	} else if ( ! $term instanceof WP_Term ) {
+		$taxomy = $term->taxonomy;
+	}
 
-	$term = get_term( $term_id, $taxonomy );
+	$term = get_term( $term, $taxonomy );
 
 	if ( empty( $term ) || is_wp_error( $term ) ) {
 		return false;
@@ -868,7 +874,7 @@
 
 	if ( '' == $permalink_structure ) {
 		if ( 'category' == $taxonomy ) {
-			$link = home_url( "?feed=$feed&amp;cat=$term_id" );
+			$link = home_url( "?feed=$feed&amp;cat=$term->term_id" );
 		} elseif ( 'post_tag' == $taxonomy ) {
 			$link = home_url( "?feed=$feed&amp;tag=$term->slug" );
 		} else {
@@ -876,7 +882,7 @@
 			$link = home_url( "?feed=$feed&amp;$t->query_var=$term->slug" );
 		}
 	} else {
-		$link = get_term_link( $term_id, $term->taxonomy );
+		$link = get_term_link( $term, $term->taxonomy );
 		if ( get_default_feed() == $feed ) {
 			$feed_link = 'feed';
 		} else {
@@ -927,13 +933,13 @@
  *
  * @since 2.3.0
  *
- * @param int    $tag_id Tag ID.
- * @param string $feed   Optional. Feed type. Possible values include 'rss2', 'atom'.
- *                       Default is the value of get_default_feed().
+ * @param int|WP_Term|object $tag The ID or term object whose feed link will be retrieved.
+ * @param string $feed            Optional. Feed type. Possible values include 'rss2', 'atom'.
+ *                                Default is the value of get_default_feed().
  * @return string The feed permalink for the given tag.
  */
-function get_tag_feed_link( $tag_id, $feed = '' ) {
-	return get_term_feed_link( $tag_id, 'post_tag', $feed );
+function get_tag_feed_link( $tag, $feed = '' ) {
+	return get_term_feed_link( $tag, 'post_tag', $feed );
 }
 
 /**
@@ -941,11 +947,11 @@
  *
  * @since 2.7.0
  *
- * @param int    $tag_id   Tag ID.
- * @param string $taxonomy Optional. Taxonomy slug. Default 'post_tag'.
+ * @param int|WP_Term|object $tag The ID or term object whose edit link will be retrieved.
+ * @param string $taxonomy        Optional. Taxonomy slug. Default 'post_tag'.
  * @return string The edit tag link URL for the given tag.
  */
-function get_edit_tag_link( $tag_id, $taxonomy = 'post_tag' ) {
+function get_edit_tag_link( $tag, $taxonomy = 'post_tag' ) {
 	/**
 	 * Filters the edit link for a tag (or term in another taxonomy).
 	 *
@@ -953,7 +959,7 @@
 	 *
 	 * @param string $link The term edit link.
 	 */
-	return apply_filters( 'get_edit_tag_link', get_edit_term_link( $tag_id, $taxonomy ) );
+	return apply_filters( 'get_edit_tag_link', get_edit_term_link( $tag, $taxonomy ) );
 }
 
 /**
@@ -986,16 +992,16 @@
  * @since 3.1.0
  * @since 4.5.0 The `$taxonomy` parameter was made optional.
  *
- * @param int    $term_id     Term ID.
- * @param string $taxonomy    Optional. Taxonomy. Defaults to the taxonomy of the term identified
- *                            by `$term_id`.
- * @param string $object_type Optional. The object type. Used to highlight the proper post type
- *                            menu on the linked page. Defaults to the first object_type associated
- *                            with the taxonomy.
+ * @param int|WP_Term|object $term The ID or term object whose edit link will be retrieved.
+ * @param string $taxonomy         Optional. Taxonomy. Defaults to the taxonomy of the term identified
+ *                                 by `$term`.
+ * @param string $object_type      Optional. The object type. Used to highlight the proper post type
+ *                                 menu on the linked page. Defaults to the first object_type associated
+ *                                 with the taxonomy.
  * @return string|null The edit term link URL for the given term, or null on failure.
  */
-function get_edit_term_link( $term_id, $taxonomy = '', $object_type = '' ) {
-	$term = get_term( $term_id, $taxonomy );
+function get_edit_term_link( $term, $taxonomy = '', $object_type = '' ) {
+	$term = get_term( $term, $taxonomy );
 	if ( ! $term || is_wp_error( $term ) ) {
 		return;
 	}
@@ -1032,7 +1038,7 @@
 	 * @param string $taxonomy    Taxonomy name.
 	 * @param string $object_type The object type (eg. the post type).
 	 */
-	return apply_filters( 'get_edit_term_link', $location, $term_id, $taxonomy, $object_type );
+	return apply_filters( 'get_edit_term_link', $location, $term->term_id, $taxonomy, $object_type );
 }
 
 /**
