From 33905adc5fc51a69329a15ed51c5ee7a71af6088 Mon Sep 17 00:00:00 2001
From: Shotaro Yamada <sinkuu@sinkuu.xyz>
Date: Fri, 17 Apr 2020 13:23:39 +0900
Subject: [PATCH 1/2] Remove unused dependencies

---
 Cargo.lock                           | 15 ---------------
 src/librustc_ast_pretty/Cargo.toml   |  1 -
 src/librustc_attr/Cargo.toml         |  1 -
 src/librustc_codegen_ssa/Cargo.toml  |  1 -
 src/librustc_hir_pretty/Cargo.toml   |  1 -
 src/librustc_interface/Cargo.toml    |  1 -
 src/librustc_lint/Cargo.toml         |  1 -
 src/librustc_middle/Cargo.toml       |  2 --
 src/librustc_mir/Cargo.toml          |  1 -
 src/librustc_parse/Cargo.toml        |  1 -
 src/librustc_passes/Cargo.toml       |  2 --
 src/librustc_query_system/Cargo.toml |  1 -
 src/librustc_traits/Cargo.toml       |  2 --
 13 files changed, 30 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index 73cb611d79f18..84bd2a78f7bbf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3577,7 +3577,6 @@ version = "0.0.0"
 dependencies = [
  "log",
  "rustc_ast",
- "rustc_data_structures",
  "rustc_span",
 ]
 
@@ -3594,7 +3593,6 @@ dependencies = [
  "rustc_session",
  "rustc_span",
  "serialize",
- "smallvec 1.0.0",
 ]
 
 [[package]]
@@ -3666,7 +3664,6 @@ dependencies = [
  "rustc_hir",
  "rustc_incremental",
  "rustc_index",
- "rustc_metadata",
  "rustc_middle",
  "rustc_session",
  "rustc_span",
@@ -3809,7 +3806,6 @@ version = "0.0.0"
 dependencies = [
  "rustc_ast",
  "rustc_ast_pretty",
- "rustc_data_structures",
  "rustc_hir",
  "rustc_span",
  "rustc_target",
@@ -3879,7 +3875,6 @@ dependencies = [
  "rustc_expand",
  "rustc_hir",
  "rustc_incremental",
- "rustc_infer",
  "rustc_lint",
  "rustc_metadata",
  "rustc_middle",
@@ -3924,7 +3919,6 @@ dependencies = [
  "rustc_feature",
  "rustc_hir",
  "rustc_index",
- "rustc_infer",
  "rustc_middle",
  "rustc_session",
  "rustc_span",
@@ -3986,10 +3980,8 @@ dependencies = [
  "backtrace",
  "bitflags",
  "byteorder",
- "jobserver",
  "log",
  "measureme",
- "parking_lot 0.10.2",
  "polonius-engine",
  "rustc-rayon",
  "rustc-rayon-core",
@@ -4023,7 +4015,6 @@ dependencies = [
  "polonius-engine",
  "rustc_apfloat",
  "rustc_ast",
- "rustc_ast_pretty",
  "rustc_attr",
  "rustc_data_structures",
  "rustc_errors",
@@ -4079,7 +4070,6 @@ dependencies = [
  "rustc_lexer",
  "rustc_session",
  "rustc_span",
- "smallvec 1.0.0",
  "unicode-normalization",
 ]
 
@@ -4092,10 +4082,8 @@ dependencies = [
  "rustc_attr",
  "rustc_data_structures",
  "rustc_errors",
- "rustc_feature",
  "rustc_hir",
  "rustc_index",
- "rustc_infer",
  "rustc_middle",
  "rustc_session",
  "rustc_span",
@@ -4143,7 +4131,6 @@ dependencies = [
  "rustc_data_structures",
  "rustc_errors",
  "rustc_index",
- "rustc_macros",
  "rustc_span",
  "serialize",
  "smallvec 1.0.0",
@@ -4296,10 +4283,8 @@ dependencies = [
  "rustc_data_structures",
  "rustc_hir",
  "rustc_infer",
- "rustc_macros",
  "rustc_middle",
  "rustc_span",
- "rustc_target",
  "rustc_trait_selection",
  "smallvec 1.0.0",
 ]
diff --git a/src/librustc_ast_pretty/Cargo.toml b/src/librustc_ast_pretty/Cargo.toml
index 82be095db8805..81d98721089f5 100644
--- a/src/librustc_ast_pretty/Cargo.toml
+++ b/src/librustc_ast_pretty/Cargo.toml
@@ -12,5 +12,4 @@ doctest = false
 [dependencies]
 log = "0.4"
 rustc_span = { path = "../librustc_span" }
-rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_attr/Cargo.toml b/src/librustc_attr/Cargo.toml
index 8aaba15d84ad2..a7a7e3dcc5f02 100644
--- a/src/librustc_attr/Cargo.toml
+++ b/src/librustc_attr/Cargo.toml
@@ -17,6 +17,5 @@ rustc_span = { path = "../librustc_span" }
 rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_feature = { path = "../librustc_feature" }
 rustc_macros = { path = "../librustc_macros" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
 rustc_session = { path = "../librustc_session" }
 rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_codegen_ssa/Cargo.toml b/src/librustc_codegen_ssa/Cargo.toml
index d9620a21d37cd..e8bfc87aef5ea 100644
--- a/src/librustc_codegen_ssa/Cargo.toml
+++ b/src/librustc_codegen_ssa/Cargo.toml
@@ -34,4 +34,3 @@ rustc_incremental = { path = "../librustc_incremental" }
 rustc_index = { path = "../librustc_index" }
 rustc_target = { path = "../librustc_target" }
 rustc_session = { path = "../librustc_session" }
-rustc_metadata = { path = "../librustc_metadata" }
diff --git a/src/librustc_hir_pretty/Cargo.toml b/src/librustc_hir_pretty/Cargo.toml
index 6a9339b4b9cee..ccd3e9b6e43c3 100644
--- a/src/librustc_hir_pretty/Cargo.toml
+++ b/src/librustc_hir_pretty/Cargo.toml
@@ -13,6 +13,5 @@ doctest = false
 rustc_ast_pretty = { path = "../librustc_ast_pretty" }
 rustc_hir = { path = "../librustc_hir" }
 rustc_target = { path = "../librustc_target" }
-rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_span = { path = "../librustc_span" }
 rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_interface/Cargo.toml b/src/librustc_interface/Cargo.toml
index 8ea866d7cab5c..2963eb29bc170 100644
--- a/src/librustc_interface/Cargo.toml
+++ b/src/librustc_interface/Cargo.toml
@@ -32,7 +32,6 @@ rustc_codegen_ssa = { path = "../librustc_codegen_ssa" }
 rustc_symbol_mangling = { path = "../librustc_symbol_mangling" }
 rustc_codegen_llvm = { path = "../librustc_codegen_llvm", optional = true }
 rustc_hir = { path = "../librustc_hir" }
-rustc_infer = { path = "../librustc_infer" }
 rustc_metadata = { path = "../librustc_metadata" }
 rustc_mir = { path = "../librustc_mir" }
 rustc_mir_build = { path = "../librustc_mir_build" }
diff --git a/src/librustc_lint/Cargo.toml b/src/librustc_lint/Cargo.toml
index 44a5ba3de517c..b238a3156fae5 100644
--- a/src/librustc_lint/Cargo.toml
+++ b/src/librustc_lint/Cargo.toml
@@ -23,5 +23,4 @@ rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_feature = { path = "../librustc_feature" }
 rustc_index = { path = "../librustc_index" }
 rustc_session = { path = "../librustc_session" }
-rustc_infer = { path = "../librustc_infer" }
 rustc_trait_selection = { path = "../librustc_trait_selection" }
diff --git a/src/librustc_middle/Cargo.toml b/src/librustc_middle/Cargo.toml
index dd322b9da952b..8e27e03ea4ffe 100644
--- a/src/librustc_middle/Cargo.toml
+++ b/src/librustc_middle/Cargo.toml
@@ -12,7 +12,6 @@ doctest = false
 [dependencies]
 arena = { path = "../libarena" }
 bitflags = "1.2.1"
-jobserver = "0.1"
 scoped-tls = "1.0"
 log = { version = "0.4", features = ["release_max_level_info", "std"] }
 rustc-rayon = "0.3.0"
@@ -32,7 +31,6 @@ rustc_serialize = { path = "../libserialize", package = "serialize" }
 rustc_ast = { path = "../librustc_ast" }
 rustc_span = { path = "../librustc_span" }
 backtrace = "0.3.40"
-parking_lot = "0.10"
 byteorder = { version = "1.3" }
 smallvec = { version = "1.0", features = ["union", "may_dangle"] }
 measureme = "0.7.1"
diff --git a/src/librustc_mir/Cargo.toml b/src/librustc_mir/Cargo.toml
index f9b195e92eb9b..d922a83232901 100644
--- a/src/librustc_mir/Cargo.toml
+++ b/src/librustc_mir/Cargo.toml
@@ -17,7 +17,6 @@ log = "0.4"
 log_settings = "0.1.1"
 polonius-engine = "0.12.0"
 rustc_middle = { path = "../librustc_middle" }
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
 rustc_attr = { path = "../librustc_attr" }
 rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_errors = { path = "../librustc_errors" }
diff --git a/src/librustc_parse/Cargo.toml b/src/librustc_parse/Cargo.toml
index a73d30e860b4e..7164c67880863 100644
--- a/src/librustc_parse/Cargo.toml
+++ b/src/librustc_parse/Cargo.toml
@@ -17,7 +17,6 @@ rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_feature = { path = "../librustc_feature" }
 rustc_lexer = { path = "../librustc_lexer" }
 rustc_errors = { path = "../librustc_errors" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
 rustc_session = { path = "../librustc_session" }
 rustc_span = { path = "../librustc_span" }
 rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_passes/Cargo.toml b/src/librustc_passes/Cargo.toml
index 0ffc8170b504c..69048cbf24a30 100644
--- a/src/librustc_passes/Cargo.toml
+++ b/src/librustc_passes/Cargo.toml
@@ -14,10 +14,8 @@ rustc_middle = { path = "../librustc_middle" }
 rustc_attr = { path = "../librustc_attr" }
 rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_errors = { path = "../librustc_errors" }
-rustc_feature = { path = "../librustc_feature" }
 rustc_hir = { path = "../librustc_hir" }
 rustc_index = { path = "../librustc_index" }
-rustc_infer = { path = "../librustc_infer" }
 rustc_session = { path = "../librustc_session" }
 rustc_target = { path = "../librustc_target" }
 rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_query_system/Cargo.toml b/src/librustc_query_system/Cargo.toml
index 7520da1f32bcd..6629d841fc8bb 100644
--- a/src/librustc_query_system/Cargo.toml
+++ b/src/librustc_query_system/Cargo.toml
@@ -15,7 +15,6 @@ rustc-rayon-core = "0.3.0"
 rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_errors = { path = "../librustc_errors" }
 rustc_index = { path = "../librustc_index" }
-rustc_macros = { path = "../librustc_macros" }
 rustc_serialize = { path = "../libserialize", package = "serialize" }
 rustc_span = { path = "../librustc_span" }
 parking_lot = "0.10"
diff --git a/src/librustc_traits/Cargo.toml b/src/librustc_traits/Cargo.toml
index 432004c104938..839558f38fddd 100644
--- a/src/librustc_traits/Cargo.toml
+++ b/src/librustc_traits/Cargo.toml
@@ -13,8 +13,6 @@ log = { version = "0.4" }
 rustc_middle = { path = "../librustc_middle" }
 rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_hir = { path = "../librustc_hir" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_target = { path = "../librustc_target" }
 rustc_ast = { path = "../librustc_ast" }
 rustc_span = { path = "../librustc_span" }
 smallvec = { version = "1.0", features = ["union", "may_dangle"] }

From fae4e2a155c860f81201e404eb2e28bde50bcc4e Mon Sep 17 00:00:00 2001
From: Shotaro Yamada <sinkuu@sinkuu.xyz>
Date: Fri, 17 Apr 2020 13:24:24 +0900
Subject: [PATCH 2/2] Remove unused ToHex/FromHex trait

---
 src/librustc_data_structures/lib.rs |   2 -
 src/libserialize/hex.rs             | 137 ----------------------------
 src/libserialize/hex/tests.rs       |  67 --------------
 src/libserialize/lib.rs             |   1 -
 4 files changed, 207 deletions(-)
 delete mode 100644 src/libserialize/hex.rs
 delete mode 100644 src/libserialize/hex/tests.rs

diff --git a/src/librustc_data_structures/lib.rs b/src/librustc_data_structures/lib.rs
index d412eaeff7424..bc2da535fd372 100644
--- a/src/librustc_data_structures/lib.rs
+++ b/src/librustc_data_structures/lib.rs
@@ -29,8 +29,6 @@ extern crate log;
 #[macro_use]
 extern crate cfg_if;
 
-pub use rustc_serialize::hex::ToHex;
-
 #[inline(never)]
 #[cold]
 pub fn cold_path<F: FnOnce() -> R, R>(f: F) -> R {
diff --git a/src/libserialize/hex.rs b/src/libserialize/hex.rs
deleted file mode 100644
index cfb165a3d4397..0000000000000
--- a/src/libserialize/hex.rs
+++ /dev/null
@@ -1,137 +0,0 @@
-//! Hex binary-to-text encoding
-
-pub use self::FromHexError::*;
-
-use std::error;
-use std::fmt;
-
-/// A trait for converting a value to hexadecimal encoding
-pub trait ToHex {
-    /// Converts the value of `self` to a hex value, returning the owned
-    /// string.
-    fn to_hex(&self) -> String;
-}
-
-const CHARS: &[u8] = b"0123456789abcdef";
-
-impl ToHex for [u8] {
-    /// Turn a vector of `u8` bytes into a hexadecimal string.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// #![feature(rustc_private)]
-    ///
-    /// extern crate serialize;
-    /// use serialize::hex::ToHex;
-    ///
-    /// fn main () {
-    ///     let str = [52,32].to_hex();
-    ///     println!("{}", str);
-    /// }
-    /// ```
-    fn to_hex(&self) -> String {
-        let mut v = Vec::with_capacity(self.len() * 2);
-        for &byte in self {
-            v.push(CHARS[(byte >> 4) as usize]);
-            v.push(CHARS[(byte & 0xf) as usize]);
-        }
-
-        unsafe { String::from_utf8_unchecked(v) }
-    }
-}
-
-/// A trait for converting hexadecimal encoded values
-pub trait FromHex {
-    /// Converts the value of `self`, interpreted as hexadecimal encoded data,
-    /// into an owned vector of bytes, returning the vector.
-    fn from_hex(&self) -> Result<Vec<u8>, FromHexError>;
-}
-
-/// Errors that can occur when decoding a hex encoded string
-#[derive(Copy, Clone, Debug)]
-pub enum FromHexError {
-    /// The input contained a character not part of the hex format
-    InvalidHexCharacter(char, usize),
-    /// The input had an invalid length
-    InvalidHexLength,
-}
-
-impl fmt::Display for FromHexError {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        match *self {
-            InvalidHexCharacter(ch, idx) => {
-                write!(f, "Invalid character '{}' at position {}", ch, idx)
-            }
-            InvalidHexLength => write!(f, "Invalid input length"),
-        }
-    }
-}
-
-impl error::Error for FromHexError {}
-
-impl FromHex for str {
-    /// Converts any hexadecimal encoded string (literal, `@`, `&`, or `~`)
-    /// to the byte values it encodes.
-    ///
-    /// You can use the `String::from_utf8` function to turn a
-    /// `Vec<u8>` into a string with characters corresponding to those values.
-    ///
-    /// # Examples
-    ///
-    /// This converts a string literal to hexadecimal and back.
-    ///
-    /// ```
-    /// #![feature(rustc_private)]
-    ///
-    /// extern crate serialize;
-    /// use serialize::hex::{FromHex, ToHex};
-    ///
-    /// fn main () {
-    ///     let hello_str = "Hello, World".as_bytes().to_hex();
-    ///     println!("{}", hello_str);
-    ///     let bytes = hello_str.from_hex().unwrap();
-    ///     println!("{:?}", bytes);
-    ///     let result_str = String::from_utf8(bytes).unwrap();
-    ///     println!("{}", result_str);
-    /// }
-    /// ```
-    fn from_hex(&self) -> Result<Vec<u8>, FromHexError> {
-        // This may be an overestimate if there is any whitespace
-        let mut b = Vec::with_capacity(self.len() / 2);
-        let mut modulus = 0;
-        let mut buf = 0;
-
-        for (idx, byte) in self.bytes().enumerate() {
-            buf <<= 4;
-
-            match byte {
-                b'A'..=b'F' => buf |= byte - b'A' + 10,
-                b'a'..=b'f' => buf |= byte - b'a' + 10,
-                b'0'..=b'9' => buf |= byte - b'0',
-                b' ' | b'\r' | b'\n' | b'\t' => {
-                    buf >>= 4;
-                    continue;
-                }
-                _ => {
-                    let ch = self[idx..].chars().next().unwrap();
-                    return Err(InvalidHexCharacter(ch, idx));
-                }
-            }
-
-            modulus += 1;
-            if modulus == 2 {
-                modulus = 0;
-                b.push(buf);
-            }
-        }
-
-        match modulus {
-            0 => Ok(b),
-            _ => Err(InvalidHexLength),
-        }
-    }
-}
-
-#[cfg(test)]
-mod tests;
diff --git a/src/libserialize/hex/tests.rs b/src/libserialize/hex/tests.rs
deleted file mode 100644
index ce62c0ff2329d..0000000000000
--- a/src/libserialize/hex/tests.rs
+++ /dev/null
@@ -1,67 +0,0 @@
-extern crate test;
-use crate::hex::{FromHex, ToHex};
-use test::Bencher;
-
-#[test]
-pub fn test_to_hex() {
-    assert_eq!("foobar".as_bytes().to_hex(), "666f6f626172");
-}
-
-#[test]
-pub fn test_from_hex_okay() {
-    assert_eq!("666f6f626172".from_hex().unwrap(), b"foobar");
-    assert_eq!("666F6F626172".from_hex().unwrap(), b"foobar");
-}
-
-#[test]
-pub fn test_from_hex_odd_len() {
-    assert!("666".from_hex().is_err());
-    assert!("66 6".from_hex().is_err());
-}
-
-#[test]
-pub fn test_from_hex_invalid_char() {
-    assert!("66y6".from_hex().is_err());
-}
-
-#[test]
-pub fn test_from_hex_ignores_whitespace() {
-    assert_eq!("666f 6f6\r\n26172 ".from_hex().unwrap(), b"foobar");
-}
-
-#[test]
-pub fn test_to_hex_all_bytes() {
-    for i in 0..256 {
-        assert_eq!([i as u8].to_hex(), format!("{:02x}", i as usize));
-    }
-}
-
-#[test]
-pub fn test_from_hex_all_bytes() {
-    for i in 0..256 {
-        let ii: &[u8] = &[i as u8];
-        assert_eq!(format!("{:02x}", i as usize).from_hex().unwrap(), ii);
-        assert_eq!(format!("{:02X}", i as usize).from_hex().unwrap(), ii);
-    }
-}
-
-#[bench]
-pub fn bench_to_hex(b: &mut Bencher) {
-    let s = "イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム \
-             ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン";
-    b.iter(|| {
-        s.as_bytes().to_hex();
-    });
-    b.bytes = s.len() as u64;
-}
-
-#[bench]
-pub fn bench_from_hex(b: &mut Bencher) {
-    let s = "イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム \
-             ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン";
-    let sb = s.as_bytes().to_hex();
-    b.iter(|| {
-        sb.from_hex().unwrap();
-    });
-    b.bytes = sb.len() as u64;
-}
diff --git a/src/libserialize/lib.rs b/src/libserialize/lib.rs
index b990e71bef0dd..c0011fddf4ff3 100644
--- a/src/libserialize/lib.rs
+++ b/src/libserialize/lib.rs
@@ -25,7 +25,6 @@ pub use self::serialize::{UseSpecializedDecodable, UseSpecializedEncodable};
 mod collection_impls;
 mod serialize;
 
-pub mod hex;
 pub mod json;
 
 pub mod leb128;