]> git.lizzy.rs Git - rust.git/commitdiff
Run rustfmt over modified files
authorSantiago Pastorino <spastorino@gmail.com>
Tue, 6 Mar 2018 05:29:03 +0000 (02:29 -0300)
committerSantiago Pastorino <spastorino@gmail.com>
Tue, 6 Mar 2018 21:03:09 +0000 (18:03 -0300)
src/librustc/session/config.rs
src/librustc/session/mod.rs
src/librustc_mir/borrow_check/error_reporting.rs
src/librustc_mir/borrow_check/mod.rs
src/librustc_mir/borrow_check/nll/region_infer/mod.rs
src/librustc_mir/borrow_check/nll/region_infer/values.rs

index 194b014c97b21a4e94d0fed250d78d4a108caabb..e6ff01a0a52c635a0b36f6a6480f05a4f3bb944c 100644 (file)
@@ -27,7 +27,7 @@
 use middle::cstore;
 
 use syntax::ast::{self, IntTy, UintTy};
-use syntax::codemap::{FilePathMapping, FileName};
+use syntax::codemap::{FileName, FilePathMapping};
 use syntax::parse::token;
 use syntax::parse;
 use syntax::symbol::Symbol;
@@ -64,12 +64,12 @@ pub enum Sanitizer {
 
 #[derive(Clone, Copy, PartialEq, Hash)]
 pub enum OptLevel {
-    No, // -O0
-    Less, // -O1
-    Default, // -O2
+    No,         // -O0
+    Less,       // -O1
+    Default,    // -O2
     Aggressive, // -O3
-    Size, // -Os
-    SizeMin, // -Oz
+    Size,       // -Os
+    SizeMin,    // -Oz
 }
 
 #[derive(Clone, Copy, PartialEq, Hash)]
@@ -99,8 +99,7 @@ pub enum DebugInfoLevel {
     FullDebugInfo,
 }
 
-#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, PartialOrd, Ord,
-         RustcEncodable, RustcDecodable)]
+#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, PartialOrd, Ord, RustcEncodable, RustcDecodable)]
 pub enum OutputType {
     Bitcode,
     Assembly,
@@ -117,12 +116,10 @@ pub enum OutputType {
 #[non_exhaustive]
 pub enum Epoch {
     // epochs must be kept in order, newest to oldest
-
     /// The 2015 epoch
     Epoch2015,
     /// The 2018 epoch
     Epoch2018,
-
     // when adding new epochs, be sure to update:
     //
     // - the list in the `parse_epoch` static
@@ -163,7 +160,7 @@ fn from_str(s: &str) -> Result<Self, ()> {
         match s {
             "2015" => Ok(Epoch::Epoch2015),
             "2018" => Ok(Epoch::Epoch2018),
-            _ => Err(())
+            _ => Err(()),
         }
     }
 }
@@ -190,14 +187,13 @@ fn to_stable_hash_key(&self, _: &StableHashingContext<'tcx>) -> Self::KeyType {
 impl OutputType {
     fn is_compatible_with_codegen_units_and_single_output_file(&self) -> bool {
         match *self {
-            OutputType::Exe |
-            OutputType::DepInfo => true,
-            OutputType::Bitcode |
-            OutputType::Assembly |
-            OutputType::LlvmAssembly |
-            OutputType::Mir |
-            OutputType::Object |
-            OutputType::Metadata => false,
+            OutputType::Exe | OutputType::DepInfo => true,
+            OutputType::Bitcode
+            | OutputType::Assembly
+            | OutputType::LlvmAssembly
+            | OutputType::Mir
+            | OutputType::Object
+            | OutputType::Metadata => false,
         }
     }
 
@@ -216,14 +212,14 @@ fn shorthand(&self) -> &'static str {
 
     fn from_shorthand(shorthand: &str) -> Option<Self> {
         Some(match shorthand {
-             "asm" => OutputType::Assembly,
-             "llvm-ir" => OutputType::LlvmAssembly,
-             "mir" => OutputType::Mir,
-             "llvm-bc" => OutputType::Bitcode,
-             "obj" => OutputType::Object,
-             "metadata" => OutputType::Metadata,
-             "link" => OutputType::Exe,
-             "dep-info" => OutputType::DepInfo,
+            "asm" => OutputType::Assembly,
+            "llvm-ir" => OutputType::LlvmAssembly,
+            "mir" => OutputType::Mir,
+            "llvm-bc" => OutputType::Bitcode,
+            "obj" => OutputType::Object,
+            "metadata" => OutputType::Metadata,
+            "link" => OutputType::Exe,
+            "dep-info" => OutputType::DepInfo,
             _ => return None,
         })
     }
@@ -281,8 +277,9 @@ fn default() -> ErrorOutputType {
 
 impl OutputTypes {
     pub fn new(entries: &[(OutputType, Option<PathBuf>)]) -> OutputTypes {
-        OutputTypes(BTreeMap::from_iter(entries.iter()
-                                               .map(|&(k, ref v)| (k, v.clone()))))
+        OutputTypes(BTreeMap::from_iter(
+            entries.iter().map(|&(k, ref v)| (k, v.clone())),
+        ))
     }
 
     pub fn get(&self, key: &OutputType) -> Option<&Option<PathBuf>> {
@@ -304,19 +301,17 @@ pub fn values<'a>(&'a self) -> BTreeMapValuesIter<'a, OutputType, Option<PathBuf
     // True if any of the output types require codegen or linking.
     pub fn should_trans(&self) -> bool {
         self.0.keys().any(|k| match *k {
-            OutputType::Bitcode |
-            OutputType::Assembly |
-            OutputType::LlvmAssembly |
-            OutputType::Mir |
-            OutputType::Object |
-            OutputType::Exe => true,
-            OutputType::Metadata |
-            OutputType::DepInfo => false,
+            OutputType::Bitcode
+            | OutputType::Assembly
+            | OutputType::LlvmAssembly
+            | OutputType::Mir
+            | OutputType::Object
+            | OutputType::Exe => true,
+            OutputType::Metadata | OutputType::DepInfo => false,
         })
     }
 }
 
-
 // Use tree-based collections to cheaply get a deterministic Hash implementation.
 // DO NOT switch BTreeMap or BTreeSet out for an unsorted container type! That
 // would break dependency tracking for commandline arguments.
@@ -522,8 +517,7 @@ pub enum Input {
 impl Input {
     pub fn filestem(&self) -> String {
         match *self {
-            Input::File(ref ifile) => ifile.file_stem().unwrap()
-                                           .to_str().unwrap().to_string(),
+            Input::File(ref ifile) => ifile.file_stem().unwrap().to_str().unwrap().to_string(),
             Input::Str { .. } => "rust_out".to_string(),
         }
     }
@@ -550,7 +544,9 @@ pub struct OutputFilenames {
 
 impl OutputFilenames {
     pub fn path(&self, flavor: OutputType) -> PathBuf {
-        self.outputs.get(&flavor).and_then(|p| p.to_owned())
+        self.outputs
+            .get(&flavor)
+            .and_then(|p| p.to_owned())
             .or_else(|| self.single_output_file.clone())
             .unwrap_or_else(|| self.temp_path(flavor, None))
     }
@@ -558,20 +554,14 @@ pub fn path(&self, flavor: OutputType) -> PathBuf {
     /// Get the path where a compilation artifact of the given type for the
     /// given codegen unit should be placed on disk. If codegen_unit_name is
     /// None, a path distinct from those of any codegen unit will be generated.
-    pub fn temp_path(&self,
-                     flavor: OutputType,
-                     codegen_unit_name: Option<&str>)
-                     -> PathBuf {
+    pub fn temp_path(&self, flavor: OutputType, codegen_unit_name: Option<&str>) -> PathBuf {
         let extension = flavor.extension();
         self.temp_path_ext(extension, codegen_unit_name)
     }
 
     /// Like temp_path, but also supports things where there is no corresponding
     /// OutputType, like no-opt-bitcode or lto-bitcode.
-    pub fn temp_path_ext(&self,
-                         ext: &str,
-                         codegen_unit_name: Option<&str>)
-                         -> PathBuf {
+    pub fn temp_path_ext(&self, ext: &str, codegen_unit_name: Option<&str>) -> PathBuf {
         let base = self.out_directory.join(&self.filestem());
 
         let mut extension = String::new();
@@ -595,7 +585,9 @@ pub fn temp_path_ext(&self,
     }
 
     pub fn with_extension(&self, extension: &str) -> PathBuf {
-        self.out_directory.join(&self.filestem()).with_extension(extension)
+        self.out_directory
+            .join(&self.filestem())
+            .with_extension(extension)
     }
 
     pub fn filestem(&self) -> String {
@@ -612,8 +604,7 @@ pub fn host_triple() -> &'static str {
     // Instead of grabbing the host triple (for the current host), we grab (at
     // compile time) the target triple that this rustc is built with and
     // calling that (at runtime) the host triple.
-    (option_env!("CFG_COMPILER_HOST_TRIPLE")).
-        expect("CFG_COMPILER_HOST_TRIPLE")
+    (option_env!("CFG_COMPILER_HOST_TRIPLE")).expect("CFG_COMPILER_HOST_TRIPLE")
 }
 
 /// Some reasonable defaults
@@ -652,15 +643,14 @@ pub fn basic_options() -> Options {
 impl Options {
     /// True if there is a reason to build the dep graph.
     pub fn build_dep_graph(&self) -> bool {
-        self.incremental.is_some() ||
-            self.debugging_opts.dump_dep_graph ||
-            self.debugging_opts.query_dep_graph
+        self.incremental.is_some() || self.debugging_opts.dump_dep_graph
+            || self.debugging_opts.query_dep_graph
     }
 
     #[inline(always)]
     pub fn enable_dep_node_debug_strs(&self) -> bool {
-        cfg!(debug_assertions) &&
-            (self.debugging_opts.query_dep_graph || self.debugging_opts.incremental_info)
+        cfg!(debug_assertions)
+            && (self.debugging_opts.query_dep_graph || self.debugging_opts.incremental_info)
     }
 
     pub fn file_path_mapping(&self) -> FilePathMapping {
@@ -1376,18 +1366,30 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig {
     }
     ret.insert((Symbol::intern("target_arch"), Some(Symbol::intern(arch))));
     ret.insert((Symbol::intern("target_endian"), Some(Symbol::intern(end))));
-    ret.insert((Symbol::intern("target_pointer_width"), Some(Symbol::intern(wordsz))));
+    ret.insert((
+        Symbol::intern("target_pointer_width"),
+        Some(Symbol::intern(wordsz)),
+    ));
     ret.insert((Symbol::intern("target_env"), Some(Symbol::intern(env))));
-    ret.insert((Symbol::intern("target_vendor"), Some(Symbol::intern(vendor))));
+    ret.insert((
+        Symbol::intern("target_vendor"),
+        Some(Symbol::intern(vendor)),
+    ));
     if sess.target.target.options.has_elf_tls {
         ret.insert((Symbol::intern("target_thread_local"), None));
     }
     for &i in &[8, 16, 32, 64, 128] {
         if i >= min_atomic_width && i <= max_atomic_width {
             let s = i.to_string();
-            ret.insert((Symbol::intern("target_has_atomic"), Some(Symbol::intern(&s))));
+            ret.insert((
+                Symbol::intern("target_has_atomic"),
+                Some(Symbol::intern(&s)),
+            ));
             if &s == wordsz {
-                ret.insert((Symbol::intern("target_has_atomic"), Some(Symbol::intern("ptr"))));
+                ret.insert((
+                    Symbol::intern("target_has_atomic"),
+                    Some(Symbol::intern("ptr")),
+                ));
             }
         }
     }
@@ -1400,9 +1402,7 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig {
     return ret;
 }
 
-pub fn build_configuration(sess: &Session,
-                           mut user_cfg: ast::CrateConfig)
-                           -> ast::CrateConfig {
+pub fn build_configuration(sess: &Session, mut user_cfg: ast::CrateConfig) -> ast::CrateConfig {
     // Combine the configuration requested by the session (command line) with
     // some default and generated configuration items
     let default_cfg = default_configuration(sess);
@@ -1429,8 +1429,11 @@ pub fn build_target_config(opts: &Options, sp: &Handler) -> Config {
         "16" => (ast::IntTy::I16, ast::UintTy::U16),
         "32" => (ast::IntTy::I32, ast::UintTy::U32),
         "64" => (ast::IntTy::I64, ast::UintTy::U64),
-        w    => sp.fatal(&format!("target specification was invalid: \
-                                          unrecognized target-pointer-width {}", w)).raise(),
+        w => sp.fatal(&format!(
+            "target specification was invalid: \
+             unrecognized target-pointer-width {}",
+            w
+        )).raise(),
     };
 
     Config {
@@ -1459,7 +1462,8 @@ pub fn is_stable(&self) -> bool {
     }
 
     pub fn stable<F>(name: &'static str, f: F) -> RustcOptGroup
-        where F: Fn(&mut getopts::Options) -> &mut getopts::Options + 'static,
+    where
+        F: Fn(&mut getopts::Options) -> &mut getopts::Options + 'static,
     {
         RustcOptGroup {
             name,
@@ -1469,7 +1473,8 @@ pub fn stable<F>(name: &'static str, f: F) -> RustcOptGroup
     }
 
     pub fn unstable<F>(name: &'static str, f: F) -> RustcOptGroup
-        where F: Fn(&mut getopts::Options) -> &mut getopts::Options + 'static,
+    where
+        F: Fn(&mut getopts::Options) -> &mut getopts::Options + 'static,
     {
         RustcOptGroup {
             name,
@@ -1497,13 +1502,15 @@ mod opt {
     pub type S = &'static str;
 
     fn stable<F>(name: S, f: F) -> R
-        where F: Fn(&mut getopts::Options) -> &mut getopts::Options + 'static
+    where
+        F: Fn(&mut getopts::Options) -> &mut getopts::Options + 'static,
     {
         RustcOptGroup::stable(name, f)
     }
 
     fn unstable<F>(name: S, f: F) -> R
-        where F: Fn(&mut getopts::Options) -> &mut getopts::Options + 'static
+    where
+        F: Fn(&mut getopts::Options) -> &mut getopts::Options + 'static,
     {
         RustcOptGroup::unstable(name, f)
     }
@@ -1556,42 +1563,88 @@ pub fn rustc_short_optgroups() -> Vec<RustcOptGroup> {
     vec![
         opt::flag_s("h", "help", "Display this message"),
         opt::multi_s("", "cfg", "Configure the compilation environment", "SPEC"),
-        opt::multi_s("L", "",   "Add a directory to the library search path. The
+        opt::multi_s(
+            "L",
+            "",
+            "Add a directory to the library search path. The
                              optional KIND can be one of dependency, crate, native,
-                             framework or all (the default).", "[KIND=]PATH"),
-        opt::multi_s("l", "",   "Link the generated crate(s) to the specified native
+                             framework or all (the default).",
+            "[KIND=]PATH",
+        ),
+        opt::multi_s(
+            "l",
+            "",
+            "Link the generated crate(s) to the specified native
                              library NAME. The optional KIND can be one of
                              static, dylib, or framework. If omitted, dylib is
-                             assumed.", "[KIND=]NAME"),
-        opt::multi_s("", "crate-type", "Comma separated list of types of crates
+                             assumed.",
+            "[KIND=]NAME",
+        ),
+        opt::multi_s(
+            "",
+            "crate-type",
+            "Comma separated list of types of crates
                                     for the compiler to emit",
-                   "[bin|lib|rlib|dylib|cdylib|staticlib|proc-macro]"),
-        opt::opt_s("", "crate-name", "Specify the name of the crate being built",
-               "NAME"),
-        opt::multi_s("", "emit", "Comma separated list of types of output for \
-                              the compiler to emit",
-                 "[asm|llvm-bc|llvm-ir|obj|metadata|link|dep-info|mir]"),
-        opt::multi_s("", "print", "Comma separated list of compiler information to \
-                               print on stdout",
-                     "[crate-name|file-names|sysroot|cfg|target-list|\
-                       target-cpus|target-features|relocation-models|\
-                       code-models|tls-models|target-spec-json|native-static-libs]"),
-        opt::flagmulti_s("g",  "",  "Equivalent to -C debuginfo=2"),
+            "[bin|lib|rlib|dylib|cdylib|staticlib|proc-macro]",
+        ),
+        opt::opt_s(
+            "",
+            "crate-name",
+            "Specify the name of the crate being built",
+            "NAME",
+        ),
+        opt::multi_s(
+            "",
+            "emit",
+            "Comma separated list of types of output for \
+             the compiler to emit",
+            "[asm|llvm-bc|llvm-ir|obj|metadata|link|dep-info|mir]",
+        ),
+        opt::multi_s(
+            "",
+            "print",
+            "Comma separated list of compiler information to \
+             print on stdout",
+            "[crate-name|file-names|sysroot|cfg|target-list|\
+             target-cpus|target-features|relocation-models|\
+             code-models|tls-models|target-spec-json|native-static-libs]",
+        ),
+        opt::flagmulti_s("g", "", "Equivalent to -C debuginfo=2"),
         opt::flagmulti_s("O", "", "Equivalent to -C opt-level=2"),
         opt::opt_s("o", "", "Write output to <filename>", "FILENAME"),
-        opt::opt_s("",  "out-dir", "Write output to compiler-chosen filename \
-                                in <dir>", "DIR"),
-        opt::opt_s("", "explain", "Provide a detailed explanation of an error \
-                               message", "OPT"),
+        opt::opt_s(
+            "",
+            "out-dir",
+            "Write output to compiler-chosen filename \
+             in <dir>",
+            "DIR",
+        ),
+        opt::opt_s(
+            "",
+            "explain",
+            "Provide a detailed explanation of an error \
+             message",
+            "OPT",
+        ),
         opt::flag_s("", "test", "Build a test harness"),
-        opt::opt_s("", "target", "Target triple for which the code is compiled", "TARGET"),
+        opt::opt_s(
+            "",
+            "target",
+            "Target triple for which the code is compiled",
+            "TARGET",
+        ),
         opt::multi_s("W", "warn", "Set lint warnings", "OPT"),
         opt::multi_s("A", "allow", "Set lint allowed", "OPT"),
         opt::multi_s("D", "deny", "Set lint denied", "OPT"),
         opt::multi_s("F", "forbid", "Set lint forbidden", "OPT"),
-        opt::multi_s("", "cap-lints", "Set the most restrictive lint level. \
-                                     More restrictive lints are capped at this \
-                                     level", "LEVEL"),
+        opt::multi_s(
+            "",
+            "cap-lints",
+            "Set the most restrictive lint level. \
+             More restrictive lints are capped at this \
+             level",
+            "LEVEL",
+        ),
         opt::multi_s("C", "codegen", "Set a codegen option", "OPT[=VALUE]"),
         opt::flag_s("V", "version", "Print version info and exit"),
         opt::flag_s("v", "verbose", "Use verbose output"),
@@ -1604,64 +1657,95 @@ pub fn rustc_short_optgroups() -> Vec<RustcOptGroup> {
 pub fn rustc_optgroups() -> Vec<RustcOptGroup> {
     let mut opts = rustc_short_optgroups();
     opts.extend(vec![
-        opt::multi_s("", "extern", "Specify where an external rust library is located",
-                     "NAME=PATH"),
+        opt::multi_s(
+            "",
+            "extern",
+            "Specify where an external rust library is located",
+            "NAME=PATH",
+        ),
         opt::opt_s("", "sysroot", "Override the system root", "PATH"),
         opt::multi("Z", "", "Set internal debugging options", "FLAG"),
-        opt::opt_s("", "error-format",
-                      "How errors and other messages are produced",
-                      "human|json|short"),
-        opt::opt_s("", "color", "Configure coloring of output:
+        opt::opt_s(
+            "",
+            "error-format",
+            "How errors and other messages are produced",
+            "human|json|short",
+        ),
+        opt::opt_s(
+            "",
+            "color",
+            "Configure coloring of output:
                                  auto   = colorize, if output goes to a tty (default);
                                  always = always colorize output;
-                                 never  = never colorize output", "auto|always|never"),
-
-        opt::opt("", "pretty",
-                 "Pretty-print the input instead of compiling;
+                                 never  = never colorize output",
+            "auto|always|never",
+        ),
+        opt::opt(
+            "",
+            "pretty",
+            "Pretty-print the input instead of compiling;
                   valid types are: `normal` (un-annotated source),
                   `expanded` (crates expanded), or
                   `expanded,identified` (fully parenthesized, AST nodes with IDs).",
-                 "TYPE"),
-        opt::multi_s("", "remap-path-prefix", "remap source names in output", "FROM=TO"),
+            "TYPE",
+        ),
+        opt::multi_s(
+            "",
+            "remap-path-prefix",
+            "remap source names in output",
+            "FROM=TO",
+        ),
     ]);
     opts
 }
 
 // Convert strings provided as --cfg [cfgspec] into a crate_cfg
-pub fn parse_cfgspecs(cfgspecs: Vec<String> ) -> ast::CrateConfig {
-    cfgspecs.into_iter().map(|s| {
-        let sess = parse::ParseSess::new(FilePathMapping::empty());
-        let mut parser =
-            parse::new_parser_from_source_str(&sess, FileName::CfgSpec, s.to_string());
-
-        let meta_item = panictry!(parser.parse_meta_item());
-
-        if parser.token != token::Eof {
-            early_error(ErrorOutputType::default(), &format!("invalid --cfg argument: {}", s))
-        } else if meta_item.is_meta_item_list() {
-            let msg =
-                format!("invalid predicate in --cfg command line argument: `{}`", meta_item.name());
-            early_error(ErrorOutputType::default(), &msg)
-        }
+pub fn parse_cfgspecs(cfgspecs: Vec<String>) -> ast::CrateConfig {
+    cfgspecs
+        .into_iter()
+        .map(|s| {
+            let sess = parse::ParseSess::new(FilePathMapping::empty());
+            let mut parser =
+                parse::new_parser_from_source_str(&sess, FileName::CfgSpec, s.to_string());
+
+            let meta_item = panictry!(parser.parse_meta_item());
+
+            if parser.token != token::Eof {
+                early_error(
+                    ErrorOutputType::default(),
+                    &format!("invalid --cfg argument: {}", s),
+                )
+            } else if meta_item.is_meta_item_list() {
+                let msg = format!(
+                    "invalid predicate in --cfg command line argument: `{}`",
+                    meta_item.name()
+                );
+                early_error(ErrorOutputType::default(), &msg)
+            }
 
-        (meta_item.name(), meta_item.value_str())
-    }).collect::<ast::CrateConfig>()
+            (meta_item.name(), meta_item.value_str())
+        })
+        .collect::<ast::CrateConfig>()
 }
 
-pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
-                                              -> (Options, ast::CrateConfig) {
+pub fn build_session_options_and_crate_config(
+    matches: &getopts::Matches,
+) -> (Options, ast::CrateConfig) {
     let color = match matches.opt_str("color").as_ref().map(|s| &s[..]) {
-        Some("auto")   => ColorConfig::Auto,
+        Some("auto") => ColorConfig::Auto,
         Some("always") => ColorConfig::Always,
-        Some("never")  => ColorConfig::Never,
+        Some("never") => ColorConfig::Never,
 
         None => ColorConfig::Auto,
 
-        Some(arg) => {
-            early_error(ErrorOutputType::default(), &format!("argument for --color must be auto, \
-                                                              always or never (instead was `{}`)",
-                                                            arg))
-        }
+        Some(arg) => early_error(
+            ErrorOutputType::default(),
+            &format!(
+                "argument for --color must be auto, \
+                 always or never (instead was `{}`)",
+                arg
+            ),
+        ),
     };
 
     // We need the opts_present check because the driver will send us Matches
@@ -1671,25 +1755,31 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
     let error_format = if matches.opts_present(&["error-format".to_owned()]) {
         match matches.opt_str("error-format").as_ref().map(|s| &s[..]) {
             Some("human") => ErrorOutputType::HumanReadable(color),
-            Some("json")  => ErrorOutputType::Json(false),
+            Some("json") => ErrorOutputType::Json(false),
             Some("pretty-json") => ErrorOutputType::Json(true),
             Some("short") => {
                 if nightly_options::is_unstable_enabled(matches) {
                     ErrorOutputType::Short(color)
                 } else {
-                    early_error(ErrorOutputType::default(),
-                                &format!("the `-Z unstable-options` flag must also be passed to \
-                                          enable the short error message option"));
+                    early_error(
+                        ErrorOutputType::default(),
+                        &format!(
+                            "the `-Z unstable-options` flag must also be passed to \
+                             enable the short error message option"
+                        ),
+                    );
                 }
             }
             None => ErrorOutputType::HumanReadable(color),
 
-            Some(arg) => {
-                early_error(ErrorOutputType::HumanReadable(color),
-                            &format!("argument for --error-format must be `human`, `json` or \
-                                      `short` (instead was `{}`)",
-                                     arg))
-            }
+            Some(arg) => early_error(
+                ErrorOutputType::HumanReadable(color),
+                &format!(
+                    "argument for --error-format must be `human`, `json` or \
+                     `short` (instead was `{}`)",
+                    arg
+                ),
+            ),
         }
     } else {
         ErrorOutputType::HumanReadable(color)
@@ -1713,15 +1803,17 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
     }
 
     let lint_cap = matches.opt_str("cap-lints").map(|cap| {
-        lint::Level::from_str(&cap).unwrap_or_else(|| {
-            early_error(error_format, &format!("unknown lint level: `{}`", cap))
-        })
+        lint::Level::from_str(&cap)
+            .unwrap_or_else(|| early_error(error_format, &format!("unknown lint level: `{}`", cap)))
     });
 
     let mut debugging_opts = build_debugging_options(matches, error_format);
 
     if !debugging_opts.unstable_options && error_format == ErrorOutputType::Json(true) {
-        early_error(ErrorOutputType::Json(false), "--error-format=pretty-json is unstable");
+        early_error(
+            ErrorOutputType::Json(false),
+            "--error-format=pretty-json is unstable",
+        );
     }
 
     let mut output_types = BTreeMap::new();
@@ -1732,10 +1824,14 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
                 let shorthand = parts.next().unwrap();
                 let output_type = match OutputType::from_shorthand(shorthand) {
                     Some(output_type) => output_type,
-                    None => early_error(error_format, &format!(
-                        "unknown emission type: `{}` - expected one of: {}",
-                        shorthand, OutputType::shorthands_display(),
-                    )),
+                    None => early_error(
+                        error_format,
+                        &format!(
+                            "unknown emission type: `{}` - expected one of: {}",
+                            shorthand,
+                            OutputType::shorthands_display(),
+                        ),
+                    ),
                 };
                 let path = parts.next().map(PathBuf::from);
                 output_types.insert(output_type, path);
@@ -1752,11 +1848,10 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
 
     // Issue #30063: if user requests llvm-related output to one
     // particular path, disable codegen-units.
-    let incompatible: Vec<_> = output_types.iter()
+    let incompatible: Vec<_> = output_types
+        .iter()
         .map(|ot_path| ot_path.0)
-        .filter(|ot| {
-            !ot.is_compatible_with_codegen_units_and_single_output_file()
-        })
+        .filter(|ot| !ot.is_compatible_with_codegen_units_and_single_output_file())
         .map(|ot| ot.shorthand())
         .collect();
     if !incompatible.is_empty() {
@@ -1764,9 +1859,14 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
             Some(n) if n > 1 => {
                 if matches.opt_present("o") {
                     for ot in &incompatible {
-                        early_warn(error_format, &format!("--emit={} with -o incompatible with \
-                                                         -C codegen-units=N for N > 1",
-                                                        ot));
+                        early_warn(
+                            error_format,
+                            &format!(
+                                "--emit={} with -o incompatible with \
+                                 -C codegen-units=N for N > 1",
+                                ot
+                            ),
+                        );
                     }
                     early_warn(error_format, "resetting to default -C codegen-units=1");
                     codegen_units = Some(1);
@@ -1781,21 +1881,30 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
     }
 
     if debugging_opts.query_threads == Some(0) {
-        early_error(error_format, "Value for query threads must be a positive nonzero integer");
+        early_error(
+            error_format,
+            "Value for query threads must be a positive nonzero integer",
+        );
     }
 
     if codegen_units == Some(0) {
-        early_error(error_format, "Value for codegen units must be a positive nonzero integer");
+        early_error(
+            error_format,
+            "Value for codegen units must be a positive nonzero integer",
+        );
     }
 
     let incremental = match (&debugging_opts.incremental, &cg.incremental) {
         (&Some(ref path1), &Some(ref path2)) => {
             if path1 != path2 {
-                early_error(error_format,
-                    &format!("conflicting paths for `-Z incremental` and \
-                              `-C incremental` specified: {} versus {}",
-                              path1,
-                              path2));
+                early_error(
+                    error_format,
+                    &format!(
+                        "conflicting paths for `-Z incremental` and \
+                         `-C incremental` specified: {} versus {}",
+                        path1, path2
+                    ),
+                );
             } else {
                 Some(path1)
             }
@@ -1806,7 +1915,10 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
     }.map(|m| PathBuf::from(m));
 
     if cg.lto != Lto::No && incremental.is_some() {
-        early_error(error_format, "can't perform LTO when compiling incrementally");
+        early_error(
+            error_format,
+            "can't perform LTO when compiling incrementally",
+        );
     }
 
     let mut prints = Vec::<PrintRequest>::new();
@@ -1826,7 +1938,11 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
         prints.push(PrintRequest::CodeModels);
         cg.code_model = None;
     }
-    if debugging_opts.tls_model.as_ref().map_or(false, |s| s == "help") {
+    if debugging_opts
+        .tls_model
+        .as_ref()
+        .map_or(false, |s| s == "help")
+    {
         prints.push(PrintRequest::TlsModels);
         debugging_opts.tls_model = None;
     }
@@ -1834,8 +1950,9 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
     let cg = cg;
 
     let sysroot_opt = matches.opt_str("sysroot").map(|m| PathBuf::from(&m));
-    let target = matches.opt_str("target").unwrap_or(
-        host_triple().to_string());
+    let target = matches
+        .opt_str("target")
+        .unwrap_or(host_triple().to_string());
     let opt_level = {
         if matches.opt_present("O") {
             if cg.opt_level.is_some() {
@@ -1843,8 +1960,10 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
             }
             OptLevel::Default
         } else {
-            match (cg.opt_level.as_ref().map(String::as_ref),
-                   nightly_options::is_nightly_build()) {
+            match (
+                cg.opt_level.as_ref().map(String::as_ref),
+                nightly_options::is_nightly_build(),
+            ) {
                 (None, _) => OptLevel::No,
                 (Some("0"), _) => OptLevel::No,
                 (Some("1"), _) => OptLevel::Less,
@@ -1853,13 +1972,23 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
                 (Some("s"), true) => OptLevel::Size,
                 (Some("z"), true) => OptLevel::SizeMin,
                 (Some("s"), false) | (Some("z"), false) => {
-                    early_error(error_format, &format!("the optimizations s or z are only \
-                                                        accepted on the nightly compiler"));
-                },
+                    early_error(
+                        error_format,
+                        &format!(
+                            "the optimizations s or z are only \
+                             accepted on the nightly compiler"
+                        ),
+                    );
+                }
                 (Some(arg), _) => {
-                    early_error(error_format, &format!("optimization level needs to be \
-                                                      between 0-3 (instead was `{}`)",
-                                                     arg));
+                    early_error(
+                        error_format,
+                        &format!(
+                            "optimization level needs to be \
+                             between 0-3 (instead was `{}`)",
+                            arg
+                        ),
+                    );
                 }
             }
         }
@@ -1876,9 +2005,14 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
             Some(1) => LimitedDebugInfo,
             Some(2) => FullDebugInfo,
             Some(arg) => {
-                early_error(error_format, &format!("debug info level needs to be between \
-                                                  0-2 (instead was `{}`)",
-                                                 arg));
+                early_error(
+                    error_format,
+                    &format!(
+                        "debug info level needs to be between \
+                         0-2 (instead was `{}`)",
+                        arg
+                    ),
+                );
             }
         }
     };
@@ -1888,76 +2022,91 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
         search_paths.add_path(&s[..], error_format);
     }
 
-    let libs = matches.opt_strs("l").into_iter().map(|s| {
-        // Parse string of the form "[KIND=]lib[:new_name]",
-        // where KIND is one of "dylib", "framework", "static".
-        let mut parts = s.splitn(2, '=');
-        let kind = parts.next().unwrap();
-        let (name, kind) = match (parts.next(), kind) {
-            (None, name) => (name, None),
-            (Some(name), "dylib") => (name, Some(cstore::NativeUnknown)),
-            (Some(name), "framework") => (name, Some(cstore::NativeFramework)),
-            (Some(name), "static") => (name, Some(cstore::NativeStatic)),
-            (Some(name), "static-nobundle") => (name, Some(cstore::NativeStaticNobundle)),
-            (_, s) => {
-                early_error(error_format, &format!("unknown library kind `{}`, expected \
-                                                  one of dylib, framework, or static",
-                                                 s));
+    let libs = matches
+        .opt_strs("l")
+        .into_iter()
+        .map(|s| {
+            // Parse string of the form "[KIND=]lib[:new_name]",
+            // where KIND is one of "dylib", "framework", "static".
+            let mut parts = s.splitn(2, '=');
+            let kind = parts.next().unwrap();
+            let (name, kind) = match (parts.next(), kind) {
+                (None, name) => (name, None),
+                (Some(name), "dylib") => (name, Some(cstore::NativeUnknown)),
+                (Some(name), "framework") => (name, Some(cstore::NativeFramework)),
+                (Some(name), "static") => (name, Some(cstore::NativeStatic)),
+                (Some(name), "static-nobundle") => (name, Some(cstore::NativeStaticNobundle)),
+                (_, s) => {
+                    early_error(
+                        error_format,
+                        &format!(
+                            "unknown library kind `{}`, expected \
+                             one of dylib, framework, or static",
+                            s
+                        ),
+                    );
+                }
+            };
+            if kind == Some(cstore::NativeStaticNobundle) && !nightly_options::is_nightly_build() {
+                early_error(
+                    error_format,
+                    &format!(
+                        "the library kind 'static-nobundle' is only \
+                         accepted on the nightly compiler"
+                    ),
+                );
             }
-        };
-        if kind == Some(cstore::NativeStaticNobundle) && !nightly_options::is_nightly_build() {
-            early_error(error_format, &format!("the library kind 'static-nobundle' is only \
-                                                accepted on the nightly compiler"));
-        }
-        let mut name_parts = name.splitn(2, ':');
-        let name = name_parts.next().unwrap();
-        let new_name = name_parts.next();
-        (name.to_string(), new_name.map(|n| n.to_string()), kind)
-    }).collect();
+            let mut name_parts = name.splitn(2, ':');
+            let name = name_parts.next().unwrap();
+            let new_name = name_parts.next();
+            (name.to_string(), new_name.map(|n| n.to_string()), kind)
+        })
+        .collect();
 
     let cfg = parse_cfgspecs(matches.opt_strs("cfg"));
     let test = matches.opt_present("test");
 
-    prints.extend(matches.opt_strs("print").into_iter().map(|s| {
-        match &*s {
-            "crate-name" => PrintRequest::CrateName,
-            "file-names" => PrintRequest::FileNames,
-            "sysroot" => PrintRequest::Sysroot,
-            "cfg" => PrintRequest::Cfg,
-            "target-list" => PrintRequest::TargetList,
-            "target-cpus" => PrintRequest::TargetCPUs,
-            "target-features" => PrintRequest::TargetFeatures,
-            "relocation-models" => PrintRequest::RelocationModels,
-            "code-models" => PrintRequest::CodeModels,
-            "tls-models" => PrintRequest::TlsModels,
-            "native-static-libs" => PrintRequest::NativeStaticLibs,
-            "target-spec-json" => {
-                if nightly_options::is_unstable_enabled(matches) {
-                    PrintRequest::TargetSpec
-                } else {
-                    early_error(error_format,
-                                &format!("the `-Z unstable-options` flag must also be passed to \
-                                          enable the target-spec-json print option"));
-                }
-            },
-            req => {
-                early_error(error_format, &format!("unknown print request `{}`", req))
+    prints.extend(matches.opt_strs("print").into_iter().map(|s| match &*s {
+        "crate-name" => PrintRequest::CrateName,
+        "file-names" => PrintRequest::FileNames,
+        "sysroot" => PrintRequest::Sysroot,
+        "cfg" => PrintRequest::Cfg,
+        "target-list" => PrintRequest::TargetList,
+        "target-cpus" => PrintRequest::TargetCPUs,
+        "target-features" => PrintRequest::TargetFeatures,
+        "relocation-models" => PrintRequest::RelocationModels,
+        "code-models" => PrintRequest::CodeModels,
+        "tls-models" => PrintRequest::TlsModels,
+        "native-static-libs" => PrintRequest::NativeStaticLibs,
+        "target-spec-json" => {
+            if nightly_options::is_unstable_enabled(matches) {
+                PrintRequest::TargetSpec
+            } else {
+                early_error(
+                    error_format,
+                    &format!(
+                        "the `-Z unstable-options` flag must also be passed to \
+                         enable the target-spec-json print option"
+                    ),
+                );
             }
         }
+        req => early_error(error_format, &format!("unknown print request `{}`", req)),
     }));
 
     let borrowck_mode = match debugging_opts.borrowck.as_ref().map(|s| &s[..]) {
         None | Some("ast") => BorrowckMode::Ast,
         Some("mir") => BorrowckMode::Mir,
         Some("compare") => BorrowckMode::Compare,
-        Some(m) => {
-            early_error(error_format, &format!("unknown borrowck mode `{}`", m))
-        },
+        Some(m) => early_error(error_format, &format!("unknown borrowck mode `{}`", m)),
     };
 
     if !cg.remark.is_empty() && debuginfo == NoDebugInfo {
-        early_warn(error_format, "-C remark will not show source locations without \
-                                --debuginfo");
+        early_warn(
+            error_format,
+            "-C remark will not show source locations without \
+             --debuginfo",
+        );
     }
 
     let mut externs = BTreeMap::new();
@@ -1969,17 +2118,22 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
         };
         let location = match parts.next() {
             Some(s) => s,
-            None => early_error(error_format, "--extern value must be of the format `foo=bar`"),
+            None => early_error(
+                error_format,
+                "--extern value must be of the format `foo=bar`",
+            ),
         };
 
-        externs.entry(name.to_string())
-               .or_insert_with(BTreeSet::new)
-               .insert(location.to_string());
+        externs
+            .entry(name.to_string())
+            .or_insert_with(BTreeSet::new)
+            .insert(location.to_string());
     }
 
     let crate_name = matches.opt_str("crate-name");
 
-    let remap_path_prefix = matches.opt_strs("remap-path-prefix")
+    let remap_path_prefix = matches
+        .opt_strs("remap-path-prefix")
         .into_iter()
         .map(|remap| {
             let mut parts = remap.rsplitn(2, '='); // reverse iterator
@@ -1987,60 +2141,62 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
             let from = parts.next();
             match (from, to) {
                 (Some(from), Some(to)) => (PathBuf::from(from), PathBuf::from(to)),
-                _ => early_error(error_format,
-                        "--remap-path-prefix must contain '=' between FROM and TO"),
+                _ => early_error(
+                    error_format,
+                    "--remap-path-prefix must contain '=' between FROM and TO",
+                ),
             }
         })
         .collect();
 
-    (Options {
-        crate_types,
-        optimize: opt_level,
-        debuginfo,
-        lint_opts,
-        lint_cap,
-        describe_lints,
-        output_types: OutputTypes(output_types),
-        search_paths,
-        maybe_sysroot: sysroot_opt,
-        target_triple: target,
-        test,
-        incremental,
-        debugging_opts,
-        prints,
-        borrowck_mode,
-        cg,
-        error_format,
-        externs: Externs(externs),
-        crate_name,
-        alt_std_name: None,
-        libs,
-        unstable_features: UnstableFeatures::from_environment(),
-        debug_assertions,
-        actually_rustdoc: false,
-        cli_forced_codegen_units: codegen_units,
-        cli_forced_thinlto_off: disable_thinlto,
-        remap_path_prefix,
-    },
-    cfg)
+    (
+        Options {
+            crate_types,
+            optimize: opt_level,
+            debuginfo,
+            lint_opts,
+            lint_cap,
+            describe_lints,
+            output_types: OutputTypes(output_types),
+            search_paths,
+            maybe_sysroot: sysroot_opt,
+            target_triple: target,
+            test,
+            incremental,
+            debugging_opts,
+            prints,
+            borrowck_mode,
+            cg,
+            error_format,
+            externs: Externs(externs),
+            crate_name,
+            alt_std_name: None,
+            libs,
+            unstable_features: UnstableFeatures::from_environment(),
+            debug_assertions,
+            actually_rustdoc: false,
+            cli_forced_codegen_units: codegen_units,
+            cli_forced_thinlto_off: disable_thinlto,
+            remap_path_prefix,
+        },
+        cfg,
+    )
 }
 
-pub fn parse_crate_types_from_list(list_list: Vec<String>)
-                                   -> Result<Vec<CrateType>, String> {
+pub fn parse_crate_types_from_list(list_list: Vec<String>) -> Result<Vec<CrateType>, String> {
     let mut crate_types: Vec<CrateType> = Vec::new();
     for unparsed_crate_type in &list_list {
         for part in unparsed_crate_type.split(',') {
             let new_part = match part {
-                "lib"       => default_lib_output(),
-                "rlib"      => CrateTypeRlib,
+                "lib" => default_lib_output(),
+                "rlib" => CrateTypeRlib,
                 "staticlib" => CrateTypeStaticlib,
-                "dylib"     => CrateTypeDylib,
-                "cdylib"    => CrateTypeCdylib,
-                "bin"       => CrateTypeExecutable,
+                "dylib" => CrateTypeDylib,
+                "cdylib" => CrateTypeCdylib,
+                "bin" => CrateTypeExecutable,
                 "proc-macro" => CrateTypeProcMacro,
                 _ => {
-                    return Err(format!("unknown crate type: `{}`",
-                                       part));
+                    return Err(format!("unknown crate type: `{}`", part));
                 }
             };
             if !crate_types.contains(&new_part) {
@@ -2059,7 +2215,11 @@ pub mod nightly_options {
     use session::early_error;
 
     pub fn is_unstable_enabled(matches: &getopts::Matches) -> bool {
-        is_nightly_build() && matches.opt_strs("Z").iter().any(|x| *x == "unstable-options")
+        is_nightly_build()
+            && matches
+                .opt_strs("Z")
+                .iter()
+                .any(|x| *x == "unstable-options")
     }
 
     pub fn is_nightly_build() -> bool {
@@ -2067,30 +2227,40 @@ pub fn is_nightly_build() -> bool {
     }
 
     pub fn check_nightly_options(matches: &getopts::Matches, flags: &[RustcOptGroup]) {
-        let has_z_unstable_option = matches.opt_strs("Z").iter().any(|x| *x == "unstable-options");
-        let really_allows_unstable_options = UnstableFeatures::from_environment()
-            .is_nightly_build();
+        let has_z_unstable_option = matches
+            .opt_strs("Z")
+            .iter()
+            .any(|x| *x == "unstable-options");
+        let really_allows_unstable_options =
+            UnstableFeatures::from_environment().is_nightly_build();
 
         for opt in flags.iter() {
             if opt.stability == OptionStability::Stable {
-                continue
+                continue;
             }
             if !matches.opt_present(opt.name) {
-                continue
+                continue;
             }
             if opt.name != "Z" && !has_z_unstable_option {
-                early_error(ErrorOutputType::default(),
-                            &format!("the `-Z unstable-options` flag must also be passed to enable \
-                                      the flag `{}`",
-                                     opt.name));
+                early_error(
+                    ErrorOutputType::default(),
+                    &format!(
+                        "the `-Z unstable-options` flag must also be passed to enable \
+                         the flag `{}`",
+                        opt.name
+                    ),
+                );
             }
             if really_allows_unstable_options {
-                continue
+                continue;
             }
             match opt.stability {
                 OptionStability::Unstable => {
-                    let msg = format!("the option `{}` is only accepted on the \
-                                       nightly compiler", opt.name);
+                    let msg = format!(
+                        "the option `{}` is only accepted on the \
+                         nightly compiler",
+                        opt.name
+                    );
                     early_error(ErrorOutputType::default(), &msg);
                 }
                 OptionStability::Stable => {}
@@ -2137,8 +2307,8 @@ mod dep_tracking {
     use std::hash::Hash;
     use std::path::PathBuf;
     use std::collections::hash_map::DefaultHasher;
-    use super::{Passes, CrateType, OptLevel, DebugInfoLevel, Lto,
-                OutputTypes, ErrorOutputType, Sanitizer, Epoch};
+    use super::{CrateType, DebugInfoLevel, Epoch, ErrorOutputType, Lto, OptLevel, OutputTypes,
+                Passes, Sanitizer};
     use syntax::feature_gate::UnstableFeatures;
     use rustc_back::{PanicStrategy, RelroLevel};
 
@@ -2205,13 +2375,17 @@ fn hash(&self, hasher: &mut DefaultHasher, error_format: ErrorOutputType) {
     impl_dep_tracking_hash_for_sortable_vec_of!(PathBuf);
     impl_dep_tracking_hash_for_sortable_vec_of!(CrateType);
     impl_dep_tracking_hash_for_sortable_vec_of!((String, lint::Level));
-    impl_dep_tracking_hash_for_sortable_vec_of!((String, Option<String>,
-                                                 Option<cstore::NativeLibraryKind>));
+    impl_dep_tracking_hash_for_sortable_vec_of!((
+        String,
+        Option<String>,
+        Option<cstore::NativeLibraryKind>
+    ));
     impl_dep_tracking_hash_for_sortable_vec_of!((String, u64));
 
     impl<T1, T2> DepTrackingHash for (T1, T2)
-        where T1: DepTrackingHash,
-              T2: DepTrackingHash
+    where
+        T1: DepTrackingHash,
+        T2: DepTrackingHash,
     {
         fn hash(&self, hasher: &mut DefaultHasher, error_format: ErrorOutputType) {
             Hash::hash(&0, hasher);
@@ -2222,9 +2396,10 @@ fn hash(&self, hasher: &mut DefaultHasher, error_format: ErrorOutputType) {
     }
 
     impl<T1, T2, T3> DepTrackingHash for (T1, T2, T3)
-        where T1: DepTrackingHash,
-              T2: DepTrackingHash,
-              T3: DepTrackingHash
+    where
+        T1: DepTrackingHash,
+        T2: DepTrackingHash,
+        T3: DepTrackingHash,
     {
         fn hash(&self, hasher: &mut DefaultHasher, error_format: ErrorOutputType) {
             Hash::hash(&0, hasher);
@@ -2237,9 +2412,11 @@ fn hash(&self, hasher: &mut DefaultHasher, error_format: ErrorOutputType) {
     }
 
     // This is a stable hash because BTreeMap is a sorted container
-    pub fn stable_hash(sub_hashes: BTreeMap<&'static str, &dyn DepTrackingHash>,
-                       hasher: &mut DefaultHasher,
-                       error_format: ErrorOutputType) {
+    pub fn stable_hash(
+        sub_hashes: BTreeMap<&'static str, &dyn DepTrackingHash>,
+        hasher: &mut DefaultHasher,
+        error_format: ErrorOutputType,
+    ) {
         for (key, sub_hash) in sub_hashes {
             // Using Hash::hash() instead of DepTrackingHash::hash() is fine for
             // the keys, as they are just plain strings
@@ -2262,7 +2439,7 @@ mod tests {
     use std::collections::{BTreeMap, BTreeSet};
     use std::iter::FromIterator;
     use std::path::PathBuf;
-    use super::{OutputType, OutputTypes, Externs};
+    use super::{Externs, OutputType, OutputTypes};
     use rustc_back::{PanicStrategy, RelroLevel};
     use syntax::symbol::Symbol;
 
@@ -2271,7 +2448,7 @@ fn optgroups() -> getopts::Options {
         for group in super::rustc_optgroups() {
             (group.apply)(&mut opts);
         }
-        return opts
+        return opts;
     }
 
     fn mk_map<K: Ord, V>(entries: Vec<(K, V)>) -> BTreeMap<K, V> {
@@ -2285,11 +2462,10 @@ fn mk_set<V: Ord>(entries: Vec<V>) -> BTreeSet<V> {
     // When the user supplies --test we should implicitly supply --cfg test
     #[test]
     fn test_switch_implies_cfg_test() {
-        let matches =
-            &match optgroups().parse(&["--test".to_string()]) {
-              Ok(m) => m,
-              Err(f) => panic!("test_switch_implies_cfg_test: {}", f)
-            };
+        let matches = &match optgroups().parse(&["--test".to_string()]) {
+            Ok(m) => m,
+            Err(f) => panic!("test_switch_implies_cfg_test: {}", f),
+        };
         let registry = errors::registry::Registry::new(&[]);
         let (sessopts, cfg) = build_session_options_and_crate_config(matches);
         let sess = build_session(sessopts, None, registry);
@@ -2301,13 +2477,10 @@ fn test_switch_implies_cfg_test() {
     // another --cfg test
     #[test]
     fn test_switch_implies_cfg_test_unless_cfg_test() {
-        let matches =
-            &match optgroups().parse(&["--test".to_string(), "--cfg=test".to_string()]) {
-              Ok(m) => m,
-              Err(f) => {
-                panic!("test_switch_implies_cfg_test_unless_cfg_test: {}", f)
-              }
-            };
+        let matches = &match optgroups().parse(&["--test".to_string(), "--cfg=test".to_string()]) {
+            Ok(m) => m,
+            Err(f) => panic!("test_switch_implies_cfg_test_unless_cfg_test: {}", f),
+        };
         let registry = errors::registry::Registry::new(&[]);
         let (sessopts, cfg) = build_session_options_and_crate_config(matches);
         let sess = build_session(sessopts, None, registry);
@@ -2320,9 +2493,7 @@ fn test_switch_implies_cfg_test_unless_cfg_test() {
     #[test]
     fn test_can_print_warnings() {
         {
-            let matches = optgroups().parse(&[
-                "-Awarnings".to_string()
-            ]).unwrap();
+            let matches = optgroups().parse(&["-Awarnings".to_string()]).unwrap();
             let registry = errors::registry::Registry::new(&[]);
             let (sessopts, _) = build_session_options_and_crate_config(&matches);
             let sess = build_session(sessopts, None, registry);
@@ -2330,10 +2501,9 @@ fn test_can_print_warnings() {
         }
 
         {
-            let matches = optgroups().parse(&[
-                "-Awarnings".to_string(),
-                "-Dwarnings".to_string()
-            ]).unwrap();
+            let matches = optgroups()
+                .parse(&["-Awarnings".to_string(), "-Dwarnings".to_string()])
+                .unwrap();
             let registry = errors::registry::Registry::new(&[]);
             let (sessopts, _) = build_session_options_and_crate_config(&matches);
             let sess = build_session(sessopts, None, registry);
@@ -2341,9 +2511,7 @@ fn test_can_print_warnings() {
         }
 
         {
-            let matches = optgroups().parse(&[
-                "-Adead_code".to_string()
-            ]).unwrap();
+            let matches = optgroups().parse(&["-Adead_code".to_string()]).unwrap();
             let registry = errors::registry::Registry::new(&[]);
             let (sessopts, _) = build_session_options_and_crate_config(&matches);
             let sess = build_session(sessopts, None, registry);
@@ -2357,10 +2525,10 @@ fn test_output_types_tracking_hash_different_paths() {
         let mut v2 = super::basic_options();
         let mut v3 = super::basic_options();
 
-        v1.output_types = OutputTypes::new(&[(OutputType::Exe,
-                                              Some(PathBuf::from("./some/thing")))]);
-        v2.output_types = OutputTypes::new(&[(OutputType::Exe,
-                                              Some(PathBuf::from("/some/thing")))]);
+        v1.output_types =
+            OutputTypes::new(&[(OutputType::Exe, Some(PathBuf::from("./some/thing")))]);
+        v2.output_types =
+            OutputTypes::new(&[(OutputType::Exe, Some(PathBuf::from("/some/thing")))]);
         v3.output_types = OutputTypes::new(&[(OutputType::Exe, None)]);
 
         assert!(v1.dep_tracking_hash() != v2.dep_tracking_hash());
@@ -2401,24 +2569,36 @@ fn test_externs_tracking_hash_different_construction_order() {
         let mut v3 = super::basic_options();
 
         v1.externs = Externs::new(mk_map(vec![
-            (String::from("a"), mk_set(vec![String::from("b"),
-                                            String::from("c")])),
-            (String::from("d"), mk_set(vec![String::from("e"),
-                                            String::from("f")])),
+            (
+                String::from("a"),
+                mk_set(vec![String::from("b"), String::from("c")]),
+            ),
+            (
+                String::from("d"),
+                mk_set(vec![String::from("e"), String::from("f")]),
+            ),
         ]));
 
         v2.externs = Externs::new(mk_map(vec![
-            (String::from("d"), mk_set(vec![String::from("e"),
-                                            String::from("f")])),
-            (String::from("a"), mk_set(vec![String::from("b"),
-                                            String::from("c")])),
+            (
+                String::from("d"),
+                mk_set(vec![String::from("e"), String::from("f")]),
+            ),
+            (
+                String::from("a"),
+                mk_set(vec![String::from("b"), String::from("c")]),
+            ),
         ]));
 
         v3.externs = Externs::new(mk_map(vec![
-            (String::from("a"), mk_set(vec![String::from("b"),
-                                            String::from("c")])),
-            (String::from("d"), mk_set(vec![String::from("f"),
-                                            String::from("e")])),
+            (
+                String::from("a"),
+                mk_set(vec![String::from("b"), String::from("c")]),
+            ),
+            (
+                String::from("d"),
+                mk_set(vec![String::from("f"), String::from("e")]),
+            ),
         ]));
 
         assert_eq!(v1.dep_tracking_hash(), v2.dep_tracking_hash());
@@ -2437,20 +2617,26 @@ fn test_lints_tracking_hash_different_values() {
         let mut v2 = super::basic_options();
         let mut v3 = super::basic_options();
 
-        v1.lint_opts = vec![(String::from("a"), lint::Allow),
-                            (String::from("b"), lint::Warn),
-                            (String::from("c"), lint::Deny),
-                            (String::from("d"), lint::Forbid)];
-
-        v2.lint_opts = vec![(String::from("a"), lint::Allow),
-                            (String::from("b"), lint::Warn),
-                            (String::from("X"), lint::Deny),
-                            (String::from("d"), lint::Forbid)];
-
-        v3.lint_opts = vec![(String::from("a"), lint::Allow),
-                            (String::from("b"), lint::Warn),
-                            (String::from("c"), lint::Forbid),
-                            (String::from("d"), lint::Deny)];
+        v1.lint_opts = vec![
+            (String::from("a"), lint::Allow),
+            (String::from("b"), lint::Warn),
+            (String::from("c"), lint::Deny),
+            (String::from("d"), lint::Forbid),
+        ];
+
+        v2.lint_opts = vec![
+            (String::from("a"), lint::Allow),
+            (String::from("b"), lint::Warn),
+            (String::from("X"), lint::Deny),
+            (String::from("d"), lint::Forbid),
+        ];
+
+        v3.lint_opts = vec![
+            (String::from("a"), lint::Allow),
+            (String::from("b"), lint::Warn),
+            (String::from("c"), lint::Forbid),
+            (String::from("d"), lint::Deny),
+        ];
 
         assert!(v1.dep_tracking_hash() != v2.dep_tracking_hash());
         assert!(v1.dep_tracking_hash() != v3.dep_tracking_hash());
@@ -2467,15 +2653,19 @@ fn test_lints_tracking_hash_different_construction_order() {
         let mut v1 = super::basic_options();
         let mut v2 = super::basic_options();
 
-        v1.lint_opts = vec![(String::from("a"), lint::Allow),
-                            (String::from("b"), lint::Warn),
-                            (String::from("c"), lint::Deny),
-                            (String::from("d"), lint::Forbid)];
+        v1.lint_opts = vec![
+            (String::from("a"), lint::Allow),
+            (String::from("b"), lint::Warn),
+            (String::from("c"), lint::Deny),
+            (String::from("d"), lint::Forbid),
+        ];
 
-        v2.lint_opts = vec![(String::from("a"), lint::Allow),
-                            (String::from("c"), lint::Deny),
-                            (String::from("b"), lint::Warn),
-                            (String::from("d"), lint::Forbid)];
+        v2.lint_opts = vec![
+            (String::from("a"), lint::Allow),
+            (String::from("c"), lint::Deny),
+            (String::from("b"), lint::Warn),
+            (String::from("d"), lint::Forbid),
+        ];
 
         assert_eq!(v1.dep_tracking_hash(), v2.dep_tracking_hash());
 
@@ -2492,29 +2682,49 @@ fn test_search_paths_tracking_hash_different_order() {
         let mut v4 = super::basic_options();
 
         // Reference
-        v1.search_paths.add_path("native=abc", super::ErrorOutputType::Json(false));
-        v1.search_paths.add_path("crate=def", super::ErrorOutputType::Json(false));
-        v1.search_paths.add_path("dependency=ghi", super::ErrorOutputType::Json(false));
-        v1.search_paths.add_path("framework=jkl", super::ErrorOutputType::Json(false));
-        v1.search_paths.add_path("all=mno", super::ErrorOutputType::Json(false));
-
-        v2.search_paths.add_path("native=abc", super::ErrorOutputType::Json(false));
-        v2.search_paths.add_path("dependency=ghi", super::ErrorOutputType::Json(false));
-        v2.search_paths.add_path("crate=def", super::ErrorOutputType::Json(false));
-        v2.search_paths.add_path("framework=jkl", super::ErrorOutputType::Json(false));
-        v2.search_paths.add_path("all=mno", super::ErrorOutputType::Json(false));
-
-        v3.search_paths.add_path("crate=def", super::ErrorOutputType::Json(false));
-        v3.search_paths.add_path("framework=jkl", super::ErrorOutputType::Json(false));
-        v3.search_paths.add_path("native=abc", super::ErrorOutputType::Json(false));
-        v3.search_paths.add_path("dependency=ghi", super::ErrorOutputType::Json(false));
-        v3.search_paths.add_path("all=mno", super::ErrorOutputType::Json(false));
-
-        v4.search_paths.add_path("all=mno", super::ErrorOutputType::Json(false));
-        v4.search_paths.add_path("native=abc", super::ErrorOutputType::Json(false));
-        v4.search_paths.add_path("crate=def", super::ErrorOutputType::Json(false));
-        v4.search_paths.add_path("dependency=ghi", super::ErrorOutputType::Json(false));
-        v4.search_paths.add_path("framework=jkl", super::ErrorOutputType::Json(false));
+        v1.search_paths
+            .add_path("native=abc", super::ErrorOutputType::Json(false));
+        v1.search_paths
+            .add_path("crate=def", super::ErrorOutputType::Json(false));
+        v1.search_paths
+            .add_path("dependency=ghi", super::ErrorOutputType::Json(false));
+        v1.search_paths
+            .add_path("framework=jkl", super::ErrorOutputType::Json(false));
+        v1.search_paths
+            .add_path("all=mno", super::ErrorOutputType::Json(false));
+
+        v2.search_paths
+            .add_path("native=abc", super::ErrorOutputType::Json(false));
+        v2.search_paths
+            .add_path("dependency=ghi", super::ErrorOutputType::Json(false));
+        v2.search_paths
+            .add_path("crate=def", super::ErrorOutputType::Json(false));
+        v2.search_paths
+            .add_path("framework=jkl", super::ErrorOutputType::Json(false));
+        v2.search_paths
+            .add_path("all=mno", super::ErrorOutputType::Json(false));
+
+        v3.search_paths
+            .add_path("crate=def", super::ErrorOutputType::Json(false));
+        v3.search_paths
+            .add_path("framework=jkl", super::ErrorOutputType::Json(false));
+        v3.search_paths
+            .add_path("native=abc", super::ErrorOutputType::Json(false));
+        v3.search_paths
+            .add_path("dependency=ghi", super::ErrorOutputType::Json(false));
+        v3.search_paths
+            .add_path("all=mno", super::ErrorOutputType::Json(false));
+
+        v4.search_paths
+            .add_path("all=mno", super::ErrorOutputType::Json(false));
+        v4.search_paths
+            .add_path("native=abc", super::ErrorOutputType::Json(false));
+        v4.search_paths
+            .add_path("crate=def", super::ErrorOutputType::Json(false));
+        v4.search_paths
+            .add_path("dependency=ghi", super::ErrorOutputType::Json(false));
+        v4.search_paths
+            .add_path("framework=jkl", super::ErrorOutputType::Json(false));
 
         assert!(v1.dep_tracking_hash() == v2.dep_tracking_hash());
         assert!(v1.dep_tracking_hash() == v3.dep_tracking_hash());
@@ -2535,24 +2745,36 @@ fn test_native_libs_tracking_hash_different_values() {
         let mut v4 = super::basic_options();
 
         // Reference
-        v1.libs = vec![(String::from("a"), None, Some(cstore::NativeStatic)),
-                       (String::from("b"), None, Some(cstore::NativeFramework)),
-                       (String::from("c"), None, Some(cstore::NativeUnknown))];
+        v1.libs = vec![
+            (String::from("a"), None, Some(cstore::NativeStatic)),
+            (String::from("b"), None, Some(cstore::NativeFramework)),
+            (String::from("c"), None, Some(cstore::NativeUnknown)),
+        ];
 
         // Change label
-        v2.libs = vec![(String::from("a"), None, Some(cstore::NativeStatic)),
-                       (String::from("X"), None, Some(cstore::NativeFramework)),
-                       (String::from("c"), None, Some(cstore::NativeUnknown))];
+        v2.libs = vec![
+            (String::from("a"), None, Some(cstore::NativeStatic)),
+            (String::from("X"), None, Some(cstore::NativeFramework)),
+            (String::from("c"), None, Some(cstore::NativeUnknown)),
+        ];
 
         // Change kind
-        v3.libs = vec![(String::from("a"), None, Some(cstore::NativeStatic)),
-                       (String::from("b"), None, Some(cstore::NativeStatic)),
-                       (String::from("c"), None, Some(cstore::NativeUnknown))];
+        v3.libs = vec![
+            (String::from("a"), None, Some(cstore::NativeStatic)),
+            (String::from("b"), None, Some(cstore::NativeStatic)),
+            (String::from("c"), None, Some(cstore::NativeUnknown)),
+        ];
 
         // Change new-name
-        v4.libs = vec![(String::from("a"), None, Some(cstore::NativeStatic)),
-                       (String::from("b"), Some(String::from("X")), Some(cstore::NativeFramework)),
-                       (String::from("c"), None, Some(cstore::NativeUnknown))];
+        v4.libs = vec![
+            (String::from("a"), None, Some(cstore::NativeStatic)),
+            (
+                String::from("b"),
+                Some(String::from("X")),
+                Some(cstore::NativeFramework),
+            ),
+            (String::from("c"), None, Some(cstore::NativeUnknown)),
+        ];
 
         assert!(v1.dep_tracking_hash() != v2.dep_tracking_hash());
         assert!(v1.dep_tracking_hash() != v3.dep_tracking_hash());
@@ -2572,17 +2794,23 @@ fn test_native_libs_tracking_hash_different_order() {
         let mut v3 = super::basic_options();
 
         // Reference
-        v1.libs = vec![(String::from("a"), None, Some(cstore::NativeStatic)),
-                       (String::from("b"), None, Some(cstore::NativeFramework)),
-                       (String::from("c"), None, Some(cstore::NativeUnknown))];
-
-        v2.libs = vec![(String::from("b"), None, Some(cstore::NativeFramework)),
-                       (String::from("a"), None, Some(cstore::NativeStatic)),
-                       (String::from("c"), None, Some(cstore::NativeUnknown))];
-
-        v3.libs = vec![(String::from("c"), None, Some(cstore::NativeUnknown)),
-                       (String::from("a"), None, Some(cstore::NativeStatic)),
-                       (String::from("b"), None, Some(cstore::NativeFramework))];
+        v1.libs = vec![
+            (String::from("a"), None, Some(cstore::NativeStatic)),
+            (String::from("b"), None, Some(cstore::NativeFramework)),
+            (String::from("c"), None, Some(cstore::NativeUnknown)),
+        ];
+
+        v2.libs = vec![
+            (String::from("b"), None, Some(cstore::NativeFramework)),
+            (String::from("a"), None, Some(cstore::NativeStatic)),
+            (String::from("c"), None, Some(cstore::NativeUnknown)),
+        ];
+
+        v3.libs = vec![
+            (String::from("c"), None, Some(cstore::NativeUnknown)),
+            (String::from("a"), None, Some(cstore::NativeStatic)),
+            (String::from("b"), None, Some(cstore::NativeFramework)),
+        ];
 
         assert!(v1.dep_tracking_hash() == v2.dep_tracking_hash());
         assert!(v1.dep_tracking_hash() == v3.dep_tracking_hash());
@@ -2621,8 +2849,7 @@ fn test_codegen_options_tracking_hash() {
         opts.cg.codegen_units = Some(42);
         assert_eq!(reference.dep_tracking_hash(), opts.dep_tracking_hash());
 
-        opts.cg.remark = super::SomePasses(vec![String::from("pass1"),
-                                                String::from("pass2")]);
+        opts.cg.remark = super::SomePasses(vec![String::from("pass1"), String::from("pass2")]);
         assert_eq!(reference.dep_tracking_hash(), opts.dep_tracking_hash());
 
         opts.cg.save_temps = true;
@@ -2631,7 +2858,6 @@ fn test_codegen_options_tracking_hash() {
         opts.cg.incremental = Some(String::from("abc"));
         assert_eq!(reference.dep_tracking_hash(), opts.dep_tracking_hash());
 
-
         // Make sure changing a [TRACKED] option changes the hash
         opts = reference.clone();
         opts.cg.lto = Lto::Fat;
index 067e480bd60ede6a7e9615bed07e671a1167a1c3..fe095e3f2d606d28b26447f7e60c735e3c1764d4 100644 (file)
@@ -20,7 +20,7 @@
 use middle::allocator::AllocatorKind;
 use middle::dependency_format;
 use session::search_paths::PathKind;
-use session::config::{DebugInfoLevel, OutputType, Epoch};
+use session::config::{DebugInfoLevel, Epoch, OutputType};
 use ty::tls;
 use util::nodemap::{FxHashMap, FxHashSet};
 use util::common::{duration_to_secs_str, ErrorReported};
@@ -37,7 +37,7 @@
 use syntax::parse::ParseSess;
 use syntax::{ast, codemap};
 use syntax::feature_gate::AttributeType;
-use syntax_pos::{Span, MultiSpan};
+use syntax_pos::{MultiSpan, Span};
 
 use rustc_back::{LinkerFlavor, PanicStrategy};
 use rustc_back::target::Target;
@@ -87,7 +87,7 @@ pub struct Session {
     pub plugin_attributes: RefCell<Vec<(String, AttributeType)>>,
     pub crate_types: RefCell<Vec<config::CrateType>>,
     pub dependency_formats: RefCell<dependency_format::Dependencies>,
-        /// The crate_disambiguator is constructed out of all the `-C metadata`
+    /// The crate_disambiguator is constructed out of all the `-C metadata`
     /// arguments passed to the compiler. Its value together with the crate-name
     /// forms a unique global identifier for the crate. It is used to allow
     /// multiple crates with the same name to coexist. See the
@@ -136,7 +136,6 @@ pub struct Session {
     out_of_fuel: Cell<bool>,
 
     // The next two are public because the driver needs to read them.
-
     /// If -zprint-fuel=crate, Some(crate).
     pub print_fuel_crate: Option<String>,
     /// Always set to zero and incremented so that we can print fuel expended by a crate.
@@ -170,7 +169,7 @@ enum DiagnosticBuilderMethod {
     Note,
     SpanNote,
     SpanSuggestion(String), // suggestion
-    // add more variants as needed to support one-time diagnostics
+                            // add more variants as needed to support one-time diagnostics
 }
 
 /// Diagnostic message ID—used by `Session.one_time_diagnostics` to avoid
@@ -179,7 +178,7 @@ enum DiagnosticBuilderMethod {
 pub enum DiagnosticMessageId {
     ErrorId(u16), // EXXXX error code as integer
     LintId(lint::LintId),
-    StabilityId(u32) // issue number
+    StabilityId(u32), // issue number
 }
 
 impl From<&'static lint::Lint> for DiagnosticMessageId {
@@ -196,33 +195,37 @@ pub fn local_crate_disambiguator(&self) -> CrateDisambiguator {
         }
     }
 
-    pub fn struct_span_warn<'a, S: Into<MultiSpan>>(&'a self,
-                                                    sp: S,
-                                                    msg: &str)
-                                                    -> DiagnosticBuilder<'a> {
+    pub fn struct_span_warn<'a, S: Into<MultiSpan>>(
+        &'a self,
+        sp: S,
+        msg: &str,
+    ) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_span_warn(sp, msg)
     }
-    pub fn struct_span_warn_with_code<'a, S: Into<MultiSpan>>(&'a self,
-                                                              sp: S,
-                                                              msg: &str,
-                                                              code: DiagnosticId)
-                                                              -> DiagnosticBuilder<'a> {
+    pub fn struct_span_warn_with_code<'a, S: Into<MultiSpan>>(
+        &'a self,
+        sp: S,
+        msg: &str,
+        code: DiagnosticId,
+    ) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_span_warn_with_code(sp, msg, code)
     }
-    pub fn struct_warn<'a>(&'a self, msg: &str) -> DiagnosticBuilder<'a>  {
+    pub fn struct_warn<'a>(&'a self, msg: &str) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_warn(msg)
     }
-    pub fn struct_span_err<'a, S: Into<MultiSpan>>(&'a self,
-                                                   sp: S,
-                                                   msg: &str)
-                                                   -> DiagnosticBuilder<'a> {
+    pub fn struct_span_err<'a, S: Into<MultiSpan>>(
+        &'a self,
+        sp: S,
+        msg: &str,
+    ) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_span_err(sp, msg)
     }
-    pub fn struct_span_err_with_code<'a, S: Into<MultiSpan>>(&'a self,
-                                                             sp: S,
-                                                             msg: &str,
-                                                             code: DiagnosticId)
-                                                             -> DiagnosticBuilder<'a> {
+    pub fn struct_span_err_with_code<'a, S: Into<MultiSpan>>(
+        &'a self,
+        sp: S,
+        msg: &str,
+        code: DiagnosticId,
+    ) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_span_err_with_code(sp, msg, code)
     }
     // FIXME: This method should be removed (every error should have an associated error code).
@@ -236,20 +239,22 @@ pub fn struct_err_with_code<'a>(
     ) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_err_with_code(msg, code)
     }
-    pub fn struct_span_fatal<'a, S: Into<MultiSpan>>(&'a self,
-                                                     sp: S,
-                                                     msg: &str)
-                                                     -> DiagnosticBuilder<'a> {
+    pub fn struct_span_fatal<'a, S: Into<MultiSpan>>(
+        &'a self,
+        sp: S,
+        msg: &str,
+    ) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_span_fatal(sp, msg)
     }
-    pub fn struct_span_fatal_with_code<'a, S: Into<MultiSpan>>(&'a self,
-                                                               sp: S,
-                                                               msg: &str,
-                                                               code: DiagnosticId)
-                                                               -> DiagnosticBuilder<'a> {
+    pub fn struct_span_fatal_with_code<'a, S: Into<MultiSpan>>(
+        &'a self,
+        sp: S,
+        msg: &str,
+        code: DiagnosticId,
+    ) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_span_fatal_with_code(sp, msg, code)
     }
-    pub fn struct_fatal<'a>(&'a self, msg: &str) -> DiagnosticBuilder<'a>  {
+    pub fn struct_fatal<'a>(&'a self, msg: &str) -> DiagnosticBuilder<'a> {
         self.diagnostic().struct_fatal(msg)
     }
 
@@ -262,7 +267,9 @@ pub fn span_fatal_with_code<S: Into<MultiSpan>>(
         msg: &str,
         code: DiagnosticId,
     ) -> ! {
-        self.diagnostic().span_fatal_with_code(sp, msg, code).raise()
+        self.diagnostic()
+            .span_fatal_with_code(sp, msg, code)
+            .raise()
     }
     pub fn fatal(&self, msg: &str) -> ! {
         self.diagnostic().fatal(msg).raise()
@@ -296,7 +303,8 @@ pub fn compile_status(&self) -> Result<(), CompileIncomplete> {
         compile_result_from_err_count(self.err_count())
     }
     pub fn track_errors<F, T>(&self, f: F) -> Result<T, ErrorReported>
-        where F: FnOnce() -> T
+    where
+        F: FnOnce() -> T,
     {
         let old_count = self.err_count();
         let result = f();
@@ -339,24 +347,31 @@ pub fn unimpl(&self, msg: &str) -> ! {
         self.diagnostic().unimpl(msg)
     }
 
-    pub fn buffer_lint<S: Into<MultiSpan>>(&self,
-                                           lint: &'static lint::Lint,
-                                           id: ast::NodeId,
-                                           sp: S,
-                                           msg: &str) {
+    pub fn buffer_lint<S: Into<MultiSpan>>(
+        &self,
+        lint: &'static lint::Lint,
+        id: ast::NodeId,
+        sp: S,
+        msg: &str,
+    ) {
         match *self.buffered_lints.borrow_mut() {
-            Some(ref mut buffer) => buffer.add_lint(lint, id, sp.into(),
-                                                    msg, BuiltinLintDiagnostics::Normal),
+            Some(ref mut buffer) => {
+                buffer.add_lint(lint, id, sp.into(), msg, BuiltinLintDiagnostics::Normal)
+            }
             None => bug!("can't buffer lints after HIR lowering"),
         }
     }
 
-    pub fn buffer_lint_with_diagnostic<S: Into<MultiSpan>>(&self,
-        lint: &'static lint::Lint, id: ast::NodeId, sp: S,
-        msg: &str, diagnostic: BuiltinLintDiagnostics) {
+    pub fn buffer_lint_with_diagnostic<S: Into<MultiSpan>>(
+        &self,
+        lint: &'static lint::Lint,
+        id: ast::NodeId,
+        sp: S,
+        msg: &str,
+        diagnostic: BuiltinLintDiagnostics,
+    ) {
         match *self.buffered_lints.borrow_mut() {
-            Some(ref mut buffer) => buffer.add_lint(lint, id, sp.into(),
-                                                    msg, diagnostic),
+            Some(ref mut buffer) => buffer.add_lint(lint, id, sp.into(), msg, diagnostic),
             None => bug!("can't buffer lints after HIR lowering"),
         }
     }
@@ -368,7 +383,7 @@ pub fn reserve_node_ids(&self, count: usize) -> ast::NodeId {
             Some(next) => {
                 self.next_node_id.set(ast::NodeId::new(next));
             }
-            None => bug!("Input too large, ran out of node ids!")
+            None => bug!("Input too large, ran out of node ids!"),
         }
 
         id
@@ -382,24 +397,27 @@ pub fn diagnostic<'a>(&'a self) -> &'a errors::Handler {
 
     /// Analogous to calling methods on the given `DiagnosticBuilder`, but
     /// deduplicates on lint ID, span (if any), and message for this `Session`
-    fn diag_once<'a, 'b>(&'a self,
-                         diag_builder: &'b mut DiagnosticBuilder<'a>,
-                         method: DiagnosticBuilderMethod,
-                         msg_id: DiagnosticMessageId,
-                         message: &str,
-                         span_maybe: Option<Span>) {
-
+    fn diag_once<'a, 'b>(
+        &'a self,
+        diag_builder: &'b mut DiagnosticBuilder<'a>,
+        method: DiagnosticBuilderMethod,
+        msg_id: DiagnosticMessageId,
+        message: &str,
+        span_maybe: Option<Span>,
+    ) {
         let id_span_message = (msg_id, span_maybe, message.to_owned());
-        let fresh = self.one_time_diagnostics.borrow_mut().insert(id_span_message);
+        let fresh = self.one_time_diagnostics
+            .borrow_mut()
+            .insert(id_span_message);
         if fresh {
             match method {
                 DiagnosticBuilderMethod::Note => {
                     diag_builder.note(message);
-                },
+                }
                 DiagnosticBuilderMethod::SpanNote => {
                     let span = span_maybe.expect("span_note needs a span");
                     diag_builder.span_note(span, message);
-                },
+                }
                 DiagnosticBuilderMethod::SpanSuggestion(suggestion) => {
                     let span = span_maybe.expect("span_suggestion needs a span");
                     diag_builder.span_suggestion(span, message, suggestion);
@@ -408,37 +426,66 @@ fn diag_once<'a, 'b>(&'a self,
         }
     }
 
-    pub fn diag_span_note_once<'a, 'b>(&'a self,
-                                       diag_builder: &'b mut DiagnosticBuilder<'a>,
-                                       msg_id: DiagnosticMessageId, span: Span, message: &str) {
-        self.diag_once(diag_builder, DiagnosticBuilderMethod::SpanNote,
-                       msg_id, message, Some(span));
-    }
-
-    pub fn diag_note_once<'a, 'b>(&'a self,
-                                  diag_builder: &'b mut DiagnosticBuilder<'a>,
-                                  msg_id: DiagnosticMessageId, message: &str) {
-        self.diag_once(diag_builder, DiagnosticBuilderMethod::Note, msg_id, message, None);
-    }
-
-    pub fn diag_span_suggestion_once<'a, 'b>(&'a self,
-                                             diag_builder: &'b mut DiagnosticBuilder<'a>,
-                                             msg_id: DiagnosticMessageId,
-                                             span: Span,
-                                             message: &str,
-                                             suggestion: String) {
-        self.diag_once(diag_builder, DiagnosticBuilderMethod::SpanSuggestion(suggestion),
-                       msg_id, message, Some(span));
+    pub fn diag_span_note_once<'a, 'b>(
+        &'a self,
+        diag_builder: &'b mut DiagnosticBuilder<'a>,
+        msg_id: DiagnosticMessageId,
+        span: Span,
+        message: &str,
+    ) {
+        self.diag_once(
+            diag_builder,
+            DiagnosticBuilderMethod::SpanNote,
+            msg_id,
+            message,
+            Some(span),
+        );
+    }
+
+    pub fn diag_note_once<'a, 'b>(
+        &'a self,
+        diag_builder: &'b mut DiagnosticBuilder<'a>,
+        msg_id: DiagnosticMessageId,
+        message: &str,
+    ) {
+        self.diag_once(
+            diag_builder,
+            DiagnosticBuilderMethod::Note,
+            msg_id,
+            message,
+            None,
+        );
+    }
+
+    pub fn diag_span_suggestion_once<'a, 'b>(
+        &'a self,
+        diag_builder: &'b mut DiagnosticBuilder<'a>,
+        msg_id: DiagnosticMessageId,
+        span: Span,
+        message: &str,
+        suggestion: String,
+    ) {
+        self.diag_once(
+            diag_builder,
+            DiagnosticBuilderMethod::SpanSuggestion(suggestion),
+            msg_id,
+            message,
+            Some(span),
+        );
     }
 
     pub fn codemap<'a>(&'a self) -> &'a codemap::CodeMap {
         self.parse_sess.codemap()
     }
-    pub fn verbose(&self) -> bool { self.opts.debugging_opts.verbose }
-    pub fn time_passes(&self) -> bool { self.opts.debugging_opts.time_passes }
+    pub fn verbose(&self) -> bool {
+        self.opts.debugging_opts.verbose
+    }
+    pub fn time_passes(&self) -> bool {
+        self.opts.debugging_opts.time_passes
+    }
     pub fn profile_queries(&self) -> bool {
-        self.opts.debugging_opts.profile_queries ||
-            self.opts.debugging_opts.profile_queries_and_keys
+        self.opts.debugging_opts.profile_queries
+            || self.opts.debugging_opts.profile_queries_and_keys
     }
     pub fn profile_queries_and_keys(&self) -> bool {
         self.opts.debugging_opts.profile_queries_and_keys
@@ -449,11 +496,21 @@ pub fn count_llvm_insns(&self) -> bool {
     pub fn time_llvm_passes(&self) -> bool {
         self.opts.debugging_opts.time_llvm_passes
     }
-    pub fn trans_stats(&self) -> bool { self.opts.debugging_opts.trans_stats }
-    pub fn meta_stats(&self) -> bool { self.opts.debugging_opts.meta_stats }
-    pub fn asm_comments(&self) -> bool { self.opts.debugging_opts.asm_comments }
-    pub fn no_verify(&self) -> bool { self.opts.debugging_opts.no_verify }
-    pub fn borrowck_stats(&self) -> bool { self.opts.debugging_opts.borrowck_stats }
+    pub fn trans_stats(&self) -> bool {
+        self.opts.debugging_opts.trans_stats
+    }
+    pub fn meta_stats(&self) -> bool {
+        self.opts.debugging_opts.meta_stats
+    }
+    pub fn asm_comments(&self) -> bool {
+        self.opts.debugging_opts.asm_comments
+    }
+    pub fn no_verify(&self) -> bool {
+        self.opts.debugging_opts.no_verify
+    }
+    pub fn borrowck_stats(&self) -> bool {
+        self.opts.debugging_opts.borrowck_stats
+    }
     pub fn print_llvm_passes(&self) -> bool {
         self.opts.debugging_opts.print_llvm_passes
     }
@@ -480,7 +537,7 @@ pub fn init_features(&self, features: feature_gate::Features) {
     pub fn lto(&self) -> config::Lto {
         // If our target has codegen requirements ignore the command line
         if self.target.target.options.requires_lto {
-            return config::Lto::Fat
+            return config::Lto::Fat;
         }
 
         // If the user specified something, return that. If they only said `-C
@@ -488,9 +545,7 @@ pub fn lto(&self) -> config::Lto {
         // then ensure we can't use a ThinLTO.
         match self.opts.cg.lto {
             config::Lto::No => {}
-            config::Lto::Yes if self.opts.cli_forced_thinlto_off => {
-                return config::Lto::Fat
-            }
+            config::Lto::Yes if self.opts.cli_forced_thinlto_off => return config::Lto::Fat,
             other => return other,
         }
 
@@ -503,28 +558,28 @@ pub fn lto(&self) -> config::Lto {
         // If processing command line options determined that we're incompatible
         // with ThinLTO (e.g. `-C lto --emit llvm-ir`) then return that option.
         if self.opts.cli_forced_thinlto_off {
-            return config::Lto::No
+            return config::Lto::No;
         }
 
         // If `-Z thinlto` specified process that, but note that this is mostly
         // a deprecated option now that `-C lto=thin` exists.
         if let Some(enabled) = self.opts.debugging_opts.thinlto {
             if enabled {
-                return config::Lto::ThinLocal
+                return config::Lto::ThinLocal;
             } else {
-                return config::Lto::No
+                return config::Lto::No;
             }
         }
 
         // If there's only one codegen unit and LTO isn't enabled then there's
         // no need for ThinLTO so just return false.
         if self.codegen_units() == 1 {
-            return config::Lto::No
+            return config::Lto::No;
         }
 
         // Right now ThinLTO isn't compatible with incremental compilation.
         if self.opts.incremental.is_some() {
-            return config::Lto::No
+            return config::Lto::No;
         }
 
         // Now we're in "defaults" territory. By default we enable ThinLTO for
@@ -538,15 +593,23 @@ pub fn lto(&self) -> config::Lto {
     /// Returns the panic strategy for this compile session. If the user explicitly selected one
     /// using '-C panic', use that, otherwise use the panic strategy defined by the target.
     pub fn panic_strategy(&self) -> PanicStrategy {
-        self.opts.cg.panic.unwrap_or(self.target.target.options.panic_strategy)
+        self.opts
+            .cg
+            .panic
+            .unwrap_or(self.target.target.options.panic_strategy)
     }
     pub fn linker_flavor(&self) -> LinkerFlavor {
-        self.opts.debugging_opts.linker_flavor.unwrap_or(self.target.target.linker_flavor)
+        self.opts
+            .debugging_opts
+            .linker_flavor
+            .unwrap_or(self.target.target.linker_flavor)
     }
 
     pub fn fewer_names(&self) -> bool {
-        let more_names = self.opts.output_types.contains_key(&OutputType::LlvmAssembly) ||
-                         self.opts.output_types.contains_key(&OutputType::Bitcode);
+        let more_names = self.opts
+            .output_types
+            .contains_key(&OutputType::LlvmAssembly)
+            || self.opts.output_types.contains_key(&OutputType::Bitcode);
         self.opts.debugging_opts.fewer_names || !more_names
     }
 
@@ -560,7 +623,9 @@ pub fn nonzeroing_move_hints(&self) -> bool {
         self.opts.debugging_opts.enable_nonzeroing_move_hints
     }
     pub fn overflow_checks(&self) -> bool {
-        self.opts.cg.overflow_checks
+        self.opts
+            .cg
+            .overflow_checks
             .or(self.opts.debugging_opts.force_overflow_checks)
             .unwrap_or(self.opts.debug_assertions)
     }
@@ -591,50 +656,59 @@ pub fn crt_static_feature(&self) -> bool {
     }
 
     pub fn must_not_eliminate_frame_pointers(&self) -> bool {
-        self.opts.debuginfo != DebugInfoLevel::NoDebugInfo ||
-        !self.target.target.options.eliminate_frame_pointer
+        self.opts.debuginfo != DebugInfoLevel::NoDebugInfo
+            || !self.target.target.options.eliminate_frame_pointer
     }
 
     /// Returns the symbol name for the registrar function,
     /// given the crate Svh and the function DefIndex.
-    pub fn generate_plugin_registrar_symbol(&self,
-                                            disambiguator: CrateDisambiguator)
-                                            -> String {
-        format!("__rustc_plugin_registrar_{}__", disambiguator.to_fingerprint().to_hex())
+    pub fn generate_plugin_registrar_symbol(&self, disambiguator: CrateDisambiguator) -> String {
+        format!(
+            "__rustc_plugin_registrar_{}__",
+            disambiguator.to_fingerprint().to_hex()
+        )
     }
 
-    pub fn generate_derive_registrar_symbol(&self,
-                                            disambiguator: CrateDisambiguator)
-                                            -> String {
-        format!("__rustc_derive_registrar_{}__", disambiguator.to_fingerprint().to_hex())
+    pub fn generate_derive_registrar_symbol(&self, disambiguator: CrateDisambiguator) -> String {
+        format!(
+            "__rustc_derive_registrar_{}__",
+            disambiguator.to_fingerprint().to_hex()
+        )
     }
 
     pub fn sysroot<'a>(&'a self) -> &'a Path {
         match self.opts.maybe_sysroot {
-            Some (ref sysroot) => sysroot,
-            None => self.default_sysroot.as_ref()
-                        .expect("missing sysroot and default_sysroot in Session")
+            Some(ref sysroot) => sysroot,
+            None => self.default_sysroot
+                .as_ref()
+                .expect("missing sysroot and default_sysroot in Session"),
         }
     }
     pub fn target_filesearch(&self, kind: PathKind) -> filesearch::FileSearch {
-        filesearch::FileSearch::new(self.sysroot(),
-                                    &self.opts.target_triple,
-                                    &self.opts.search_paths,
-                                    kind)
+        filesearch::FileSearch::new(
+            self.sysroot(),
+            &self.opts.target_triple,
+            &self.opts.search_paths,
+            kind,
+        )
     }
     pub fn host_filesearch(&self, kind: PathKind) -> filesearch::FileSearch {
         filesearch::FileSearch::new(
             self.sysroot(),
             config::host_triple(),
             &self.opts.search_paths,
-            kind)
+            kind,
+        )
     }
 
     pub fn set_incr_session_load_dep_graph(&self, load: bool) {
         let mut incr_comp_session = self.incr_comp_session.borrow_mut();
 
         match *incr_comp_session {
-            IncrCompSession::Active { ref mut load_dep_graph, .. } => {
+            IncrCompSession::Active {
+                ref mut load_dep_graph,
+                ..
+            } => {
                 *load_dep_graph = load;
             }
             _ => {}
@@ -649,14 +723,20 @@ pub fn incr_session_load_dep_graph(&self) -> bool {
         }
     }
 
-    pub fn init_incr_comp_session(&self,
-                                  session_dir: PathBuf,
-                                  lock_file: flock::Lock,
-                                  load_dep_graph: bool) {
+    pub fn init_incr_comp_session(
+        &self,
+        session_dir: PathBuf,
+        lock_file: flock::Lock,
+        load_dep_graph: bool,
+    ) {
         let mut incr_comp_session = self.incr_comp_session.borrow_mut();
 
-        if let IncrCompSession::NotInitialized = *incr_comp_session { } else {
-            bug!("Trying to initialize IncrCompSession `{:?}`", *incr_comp_session)
+        if let IncrCompSession::NotInitialized = *incr_comp_session {
+        } else {
+            bug!(
+                "Trying to initialize IncrCompSession `{:?}`",
+                *incr_comp_session
+            )
         }
 
         *incr_comp_session = IncrCompSession::Active {
@@ -669,8 +749,12 @@ pub fn init_incr_comp_session(&self,
     pub fn finalize_incr_comp_session(&self, new_directory_path: PathBuf) {
         let mut incr_comp_session = self.incr_comp_session.borrow_mut();
 
-        if let IncrCompSession::Active { .. } = *incr_comp_session { } else {
-            bug!("Trying to finalize IncrCompSession `{:?}`", *incr_comp_session)
+        if let IncrCompSession::Active { .. } = *incr_comp_session {
+        } else {
+            bug!(
+                "Trying to finalize IncrCompSession `{:?}`",
+                *incr_comp_session
+            )
         }
 
         // Note: This will also drop the lock file, thus unlocking the directory
@@ -683,35 +767,42 @@ pub fn mark_incr_comp_session_as_invalid(&self) {
         let mut incr_comp_session = self.incr_comp_session.borrow_mut();
 
         let session_directory = match *incr_comp_session {
-            IncrCompSession::Active { ref session_directory, .. } => {
-                session_directory.clone()
-            }
+            IncrCompSession::Active {
+                ref session_directory,
+                ..
+            } => session_directory.clone(),
             IncrCompSession::InvalidBecauseOfErrors { .. } => return,
-            _ => bug!("Trying to invalidate IncrCompSession `{:?}`",
-                      *incr_comp_session),
+            _ => bug!(
+                "Trying to invalidate IncrCompSession `{:?}`",
+                *incr_comp_session
+            ),
         };
 
         // Note: This will also drop the lock file, thus unlocking the directory
-        *incr_comp_session = IncrCompSession::InvalidBecauseOfErrors {
-            session_directory,
-        };
+        *incr_comp_session = IncrCompSession::InvalidBecauseOfErrors { session_directory };
     }
 
     pub fn incr_comp_session_dir(&self) -> cell::Ref<PathBuf> {
         let incr_comp_session = self.incr_comp_session.borrow();
-        cell::Ref::map(incr_comp_session, |incr_comp_session| {
-            match *incr_comp_session {
-                IncrCompSession::NotInitialized => {
-                    bug!("Trying to get session directory from IncrCompSession `{:?}`",
-                        *incr_comp_session)
+        cell::Ref::map(
+            incr_comp_session,
+            |incr_comp_session| match *incr_comp_session {
+                IncrCompSession::NotInitialized => bug!(
+                    "Trying to get session directory from IncrCompSession `{:?}`",
+                    *incr_comp_session
+                ),
+                IncrCompSession::Active {
+                    ref session_directory,
+                    ..
                 }
-                IncrCompSession::Active { ref session_directory, .. } |
-                IncrCompSession::Finalized { ref session_directory } |
-                IncrCompSession::InvalidBecauseOfErrors { ref session_directory } => {
-                    session_directory
+                | IncrCompSession::Finalized {
+                    ref session_directory,
                 }
-            }
-        })
+                | IncrCompSession::InvalidBecauseOfErrors {
+                    ref session_directory,
+                } => session_directory,
+            },
+        )
     }
 
     pub fn incr_comp_session_dir_opt(&self) -> Option<cell::Ref<PathBuf>> {
@@ -723,25 +814,39 @@ pub fn incr_comp_session_dir_opt(&self) -> Option<cell::Ref<PathBuf>> {
     }
 
     pub fn print_perf_stats(&self) {
-        println!("Total time spent computing SVHs:               {}",
-                 duration_to_secs_str(self.perf_stats.svh_time.get()));
-        println!("Total time spent computing incr. comp. hashes: {}",
-                 duration_to_secs_str(self.perf_stats.incr_comp_hashes_time.get()));
-        println!("Total number of incr. comp. hashes computed:   {}",
-                 self.perf_stats.incr_comp_hashes_count.get());
-        println!("Total number of bytes hashed for incr. comp.:  {}",
-                 self.perf_stats.incr_comp_bytes_hashed.get());
+        println!(
+            "Total time spent computing SVHs:               {}",
+            duration_to_secs_str(self.perf_stats.svh_time.get())
+        );
+        println!(
+            "Total time spent computing incr. comp. hashes: {}",
+            duration_to_secs_str(self.perf_stats.incr_comp_hashes_time.get())
+        );
+        println!(
+            "Total number of incr. comp. hashes computed:   {}",
+            self.perf_stats.incr_comp_hashes_count.get()
+        );
+        println!(
+            "Total number of bytes hashed for incr. comp.:  {}",
+            self.perf_stats.incr_comp_bytes_hashed.get()
+        );
         if self.perf_stats.incr_comp_hashes_count.get() != 0 {
-            println!("Average bytes hashed per incr. comp. HIR node: {}",
-                    self.perf_stats.incr_comp_bytes_hashed.get() /
-                    self.perf_stats.incr_comp_hashes_count.get());
+            println!(
+                "Average bytes hashed per incr. comp. HIR node: {}",
+                self.perf_stats.incr_comp_bytes_hashed.get()
+                    / self.perf_stats.incr_comp_hashes_count.get()
+            );
         } else {
             println!("Average bytes hashed per incr. comp. HIR node: N/A");
         }
-        println!("Total time spent computing symbol hashes:      {}",
-                 duration_to_secs_str(self.perf_stats.symbol_hash_time.get()));
-        println!("Total time spent decoding DefPath tables:      {}",
-                 duration_to_secs_str(self.perf_stats.decode_def_path_tables_time.get()));
+        println!(
+            "Total time spent computing symbol hashes:      {}",
+            duration_to_secs_str(self.perf_stats.symbol_hash_time.get())
+        );
+        println!(
+            "Total time spent decoding DefPath tables:      {}",
+            duration_to_secs_str(self.perf_stats.decode_def_path_tables_time.get())
+        );
     }
 
     /// We want to know if we're allowed to do an optimization for crate foo from -z fuel=foo=n.
@@ -756,15 +861,15 @@ pub fn consider_optimizing<T: Fn() -> String>(&self, crate_name: &str, msg: T) -
                     println!("optimization-fuel-exhausted: {}", msg());
                     self.out_of_fuel.set(true);
                 } else if fuel > 0 {
-                    self.optimization_fuel_limit.set(fuel-1);
+                    self.optimization_fuel_limit.set(fuel - 1);
                 }
             }
             _ => {}
         }
         match self.print_fuel_crate {
-            Some(ref c) if c == crate_name=> {
-                self.print_fuel.set(self.print_fuel.get()+1);
-            },
+            Some(ref c) if c == crate_name => {
+                self.print_fuel.set(self.print_fuel.get() + 1);
+            }
             _ => {}
         }
         ret
@@ -780,10 +885,10 @@ pub fn query_threads(&self) -> usize {
     /// compilation
     pub fn codegen_units(&self) -> usize {
         if let Some(n) = self.opts.cli_forced_codegen_units {
-            return n
+            return n;
         }
         if let Some(n) = self.target.target.options.default_codegen_units {
-            return n as usize
+            return n as usize;
         }
 
         // Why is 16 codegen units the default all the time?
@@ -853,29 +958,34 @@ pub fn epoch(&self) -> Epoch {
     }
 }
 
-pub fn build_session(sopts: config::Options,
-                     local_crate_source_file: Option<PathBuf>,
-                     registry: errors::registry::Registry)
-                     -> Session {
+pub fn build_session(
+    sopts: config::Options,
+    local_crate_source_file: Option<PathBuf>,
+    registry: errors::registry::Registry,
+) -> Session {
     let file_path_mapping = sopts.file_path_mapping();
 
-    build_session_with_codemap(sopts,
-                               local_crate_source_file,
-                               registry,
-                               Lrc::new(codemap::CodeMap::new(file_path_mapping)),
-                               None)
+    build_session_with_codemap(
+        sopts,
+        local_crate_source_file,
+        registry,
+        Lrc::new(codemap::CodeMap::new(file_path_mapping)),
+        None,
+    )
 }
 
-pub fn build_session_with_codemap(sopts: config::Options,
-                                  local_crate_source_file: Option<PathBuf>,
-                                  registry: errors::registry::Registry,
-                                  codemap: Lrc<codemap::CodeMap>,
-                                  emitter_dest: Option<Box<dyn Write + Send>>)
-                                  -> Session {
+pub fn build_session_with_codemap(
+    sopts: config::Options,
+    local_crate_source_file: Option<PathBuf>,
+    registry: errors::registry::Registry,
+    codemap: Lrc<codemap::CodeMap>,
+    emitter_dest: Option<Box<dyn Write + Send>>,
+) -> Session {
     // FIXME: This is not general enough to make the warning lint completely override
     // normal diagnostic warnings, since the warning lint can also be denied and changed
     // later via the source code.
-    let warnings_allow = sopts.lint_opts
+    let warnings_allow = sopts
+        .lint_opts
         .iter()
         .filter(|&&(ref key, _)| *key == "warnings")
         .map(|&(_, ref level)| *level == lint::Allow)
@@ -889,60 +999,70 @@ pub fn build_session_with_codemap(sopts: config::Options,
 
     let external_macro_backtrace = sopts.debugging_opts.external_macro_backtrace;
 
-    let emitter: Box<dyn Emitter> = match (sopts.error_format, emitter_dest) {
-        (config::ErrorOutputType::HumanReadable(color_config), None) => {
-            Box::new(EmitterWriter::stderr(color_config, Some(codemap.clone()),
-                     false, sopts.debugging_opts.teach)
-                     .ui_testing(sopts.debugging_opts.ui_testing))
-        }
-        (config::ErrorOutputType::HumanReadable(_), Some(dst)) => {
-            Box::new(EmitterWriter::new(dst, Some(codemap.clone()),
-                     false, false)
-                     .ui_testing(sopts.debugging_opts.ui_testing))
-        }
-        (config::ErrorOutputType::Json(pretty), None) => {
-            Box::new(JsonEmitter::stderr(Some(registry), codemap.clone(),
-                     pretty, sopts.debugging_opts.approximate_suggestions)
-                     .ui_testing(sopts.debugging_opts.ui_testing))
-        }
-        (config::ErrorOutputType::Json(pretty), Some(dst)) => {
-            Box::new(JsonEmitter::new(dst, Some(registry), codemap.clone(),
-                     pretty, sopts.debugging_opts.approximate_suggestions)
-                     .ui_testing(sopts.debugging_opts.ui_testing))
-        }
-        (config::ErrorOutputType::Short(color_config), None) => {
-            Box::new(EmitterWriter::stderr(color_config, Some(codemap.clone()), true, false))
-        }
-        (config::ErrorOutputType::Short(_), Some(dst)) => {
-            Box::new(EmitterWriter::new(dst, Some(codemap.clone()), true, false))
-        }
-    };
+    let emitter: Box<dyn Emitter> =
+        match (sopts.error_format, emitter_dest) {
+            (config::ErrorOutputType::HumanReadable(color_config), None) => Box::new(
+                EmitterWriter::stderr(
+                    color_config,
+                    Some(codemap.clone()),
+                    false,
+                    sopts.debugging_opts.teach,
+                ).ui_testing(sopts.debugging_opts.ui_testing),
+            ),
+            (config::ErrorOutputType::HumanReadable(_), Some(dst)) => Box::new(
+                EmitterWriter::new(dst, Some(codemap.clone()), false, false)
+                    .ui_testing(sopts.debugging_opts.ui_testing),
+            ),
+            (config::ErrorOutputType::Json(pretty), None) => Box::new(
+                JsonEmitter::stderr(
+                    Some(registry),
+                    codemap.clone(),
+                    pretty,
+                    sopts.debugging_opts.approximate_suggestions,
+                ).ui_testing(sopts.debugging_opts.ui_testing),
+            ),
+            (config::ErrorOutputType::Json(pretty), Some(dst)) => Box::new(
+                JsonEmitter::new(
+                    dst,
+                    Some(registry),
+                    codemap.clone(),
+                    pretty,
+                    sopts.debugging_opts.approximate_suggestions,
+                ).ui_testing(sopts.debugging_opts.ui_testing),
+            ),
+            (config::ErrorOutputType::Short(color_config), None) => Box::new(
+                EmitterWriter::stderr(color_config, Some(codemap.clone()), true, false),
+            ),
+            (config::ErrorOutputType::Short(_), Some(dst)) => {
+                Box::new(EmitterWriter::new(dst, Some(codemap.clone()), true, false))
+            }
+        };
 
-    let diagnostic_handler =
-        errors::Handler::with_emitter_and_flags(
-            emitter,
-            errors::HandlerFlags {
-                can_emit_warnings,
-                treat_err_as_bug,
-                external_macro_backtrace,
-                .. Default::default()
-            });
+    let diagnostic_handler = errors::Handler::with_emitter_and_flags(
+        emitter,
+        errors::HandlerFlags {
+            can_emit_warnings,
+            treat_err_as_bug,
+            external_macro_backtrace,
+            ..Default::default()
+        },
+    );
 
-    build_session_(sopts,
-                   local_crate_source_file,
-                   diagnostic_handler,
-                   codemap)
+    build_session_(sopts, local_crate_source_file, diagnostic_handler, codemap)
 }
 
-pub fn build_session_(sopts: config::Options,
-                      local_crate_source_file: Option<PathBuf>,
-                      span_diagnostic: errors::Handler,
-                      codemap: Lrc<codemap::CodeMap>)
-                      -> Session {
+pub fn build_session_(
+    sopts: config::Options,
+    local_crate_source_file: Option<PathBuf>,
+    span_diagnostic: errors::Handler,
+    codemap: Lrc<codemap::CodeMap>,
+) -> Session {
     let host = match Target::search(config::host_triple()) {
         Ok(t) => t,
         Err(e) => {
-            span_diagnostic.fatal(&format!("Error loading host specification: {}", e)).raise();
+            span_diagnostic
+                .fatal(&format!("Error loading host specification: {}", e))
+                .raise();
         }
     };
     let target_cfg = config::build_target_config(&sopts, &span_diagnostic);
@@ -950,26 +1070,25 @@ pub fn build_session_(sopts: config::Options,
     let p_s = parse::ParseSess::with_span_handler(span_diagnostic, codemap);
     let default_sysroot = match sopts.maybe_sysroot {
         Some(_) => None,
-        None => Some(filesearch::get_or_default_sysroot())
+        None => Some(filesearch::get_or_default_sysroot()),
     };
 
     let file_path_mapping = sopts.file_path_mapping();
 
-    let local_crate_source_file = local_crate_source_file.map(|path| {
-        file_path_mapping.map_prefix(path).0
-    });
+    let local_crate_source_file =
+        local_crate_source_file.map(|path| file_path_mapping.map_prefix(path).0);
 
     let optimization_fuel_crate = sopts.debugging_opts.fuel.as_ref().map(|i| i.0.clone());
-    let optimization_fuel_limit = Cell::new(sopts.debugging_opts.fuel.as_ref()
-        .map(|i| i.1).unwrap_or(0));
+    let optimization_fuel_limit =
+        Cell::new(sopts.debugging_opts.fuel.as_ref().map(|i| i.1).unwrap_or(0));
     let print_fuel_crate = sopts.debugging_opts.print_fuel.clone();
     let print_fuel = Cell::new(0);
 
     let working_dir = match env::current_dir() {
         Ok(dir) => dir,
-        Err(e) => {
-            p_s.span_diagnostic.fatal(&format!("Current directory is invalid: {}", e)).raise()
-        }
+        Err(e) => p_s.span_diagnostic
+            .fatal(&format!("Current directory is invalid: {}", e))
+            .raise(),
     };
     let working_dir = file_path_mapping.map_prefix(working_dir);
 
@@ -1076,15 +1195,11 @@ pub enum IncrCompSession {
     },
     /// This is the state after the session directory has been finalized. In this
     /// state, the contents of the directory must not be modified any more.
-    Finalized {
-        session_directory: PathBuf,
-    },
+    Finalized { session_directory: PathBuf },
     /// This is an error state that is reached when some compilation error has
     /// occurred. It indicates that the contents of the session directory must
     /// not be used, since they might be invalid.
-    InvalidBecauseOfErrors {
-        session_directory: PathBuf,
-    }
+    InvalidBecauseOfErrors { session_directory: PathBuf },
 }
 
 pub fn early_error(output: config::ErrorOutputType, msg: &str) -> ! {
@@ -1119,7 +1234,7 @@ pub fn early_warn(output: config::ErrorOutputType, msg: &str) {
 #[derive(Copy, Clone, Debug)]
 pub enum CompileIncomplete {
     Stopped,
-    Errored(ErrorReported)
+    Errored(ErrorReported),
 }
 impl From<ErrorReported> for CompileIncomplete {
     fn from(err: ErrorReported) -> CompileIncomplete {
@@ -1146,23 +1261,27 @@ pub fn bug_fmt(file: &'static str, line: u32, args: fmt::Arguments) -> ! {
 
 #[cold]
 #[inline(never)]
-pub fn span_bug_fmt<S: Into<MultiSpan>>(file: &'static str,
-                                        line: u32,
-                                        span: S,
-                                        args: fmt::Arguments) -> ! {
+pub fn span_bug_fmt<S: Into<MultiSpan>>(
+    file: &'static str,
+    line: u32,
+    span: S,
+    args: fmt::Arguments,
+) -> ! {
     opt_span_bug_fmt(file, line, Some(span), args);
 }
 
-fn opt_span_bug_fmt<S: Into<MultiSpan>>(file: &'static str,
-                                        line: u32,
-                                        span: Option<S>,
-                                        args: fmt::Arguments) -> ! {
+fn opt_span_bug_fmt<S: Into<MultiSpan>>(
+    file: &'static str,
+    line: u32,
+    span: Option<S>,
+    args: fmt::Arguments,
+) -> ! {
     tls::with_opt(move |tcx| {
         let msg = format!("{}:{}: {}", file, line, args);
         match (tcx, span) {
             (Some(tcx), Some(span)) => tcx.sess.diagnostic().span_bug(span, &msg),
             (Some(tcx), None) => tcx.sess.diagnostic().bug(&msg),
-            (None, _) => panic!(msg)
+            (None, _) => panic!(msg),
         }
     });
     unreachable!();
index cfa1890e182eadc4e7dd9568c7eceb7d47222d1d..77a3f138fe590ea5df544197c0ac95d73453ff20 100644 (file)
@@ -268,8 +268,8 @@ pub(super) fn report_conflicting_borrow(
             "mutable",
         ) {
             (BorrowKind::Shared, lft, _, BorrowKind::Mut { .. }, _, rgt)
-            | (BorrowKind::Mut { .. }, _, lft, BorrowKind::Shared, rgt, _) => tcx
-                .cannot_reborrow_already_borrowed(
+            | (BorrowKind::Mut { .. }, _, lft, BorrowKind::Shared, rgt, _) => {
+                tcx.cannot_reborrow_already_borrowed(
                     span,
                     &desc_place,
                     "",
@@ -280,10 +280,11 @@ pub(super) fn report_conflicting_borrow(
                     "",
                     end_issued_loan_span,
                     Origin::Mir,
-                ),
+                )
+            }
 
-            (BorrowKind::Mut { .. }, _, _, BorrowKind::Mut { .. }, _, _) => tcx
-                .cannot_mutably_borrow_multiply(
+            (BorrowKind::Mut { .. }, _, _, BorrowKind::Mut { .. }, _, _) => {
+                tcx.cannot_mutably_borrow_multiply(
                     span,
                     &desc_place,
                     "",
@@ -291,16 +292,18 @@ pub(super) fn report_conflicting_borrow(
                     "",
                     end_issued_loan_span,
                     Origin::Mir,
-                ),
+                )
+            }
 
-            (BorrowKind::Unique, _, _, BorrowKind::Unique, _, _) => tcx
-                .cannot_uniquely_borrow_by_two_closures(
+            (BorrowKind::Unique, _, _, BorrowKind::Unique, _, _) => {
+                tcx.cannot_uniquely_borrow_by_two_closures(
                     span,
                     &desc_place,
                     issued_span,
                     end_issued_loan_span,
                     Origin::Mir,
-                ),
+                )
+            }
 
             (BorrowKind::Unique, _, _, _, _, _) => tcx.cannot_uniquely_borrow_by_one_closure(
                 span,
@@ -313,8 +316,8 @@ pub(super) fn report_conflicting_borrow(
                 Origin::Mir,
             ),
 
-            (BorrowKind::Shared, lft, _, BorrowKind::Unique, _, _) => tcx
-                .cannot_reborrow_already_uniquely_borrowed(
+            (BorrowKind::Shared, lft, _, BorrowKind::Unique, _, _) => {
+                tcx.cannot_reborrow_already_uniquely_borrowed(
                     span,
                     &desc_place,
                     "",
@@ -323,10 +326,11 @@ pub(super) fn report_conflicting_borrow(
                     "",
                     end_issued_loan_span,
                     Origin::Mir,
-                ),
+                )
+            }
 
-            (BorrowKind::Mut { .. }, _, lft, BorrowKind::Unique, _, _) => tcx
-                .cannot_reborrow_already_uniquely_borrowed(
+            (BorrowKind::Mut { .. }, _, lft, BorrowKind::Unique, _, _) => {
+                tcx.cannot_reborrow_already_uniquely_borrowed(
                     span,
                     &desc_place,
                     "",
@@ -335,7 +339,8 @@ pub(super) fn report_conflicting_borrow(
                     "",
                     end_issued_loan_span,
                     Origin::Mir,
-                ),
+                )
+            }
 
             (BorrowKind::Shared, _, _, BorrowKind::Shared, _, _) => unreachable!(),
         };
@@ -470,11 +475,8 @@ fn report_scoped_local_value_does_not_live_long_enough(
         end_span: Option<Span>,
     ) {
         let tcx = self.tcx;
-        let mut err = tcx.path_does_not_live_long_enough(
-            borrow_span,
-            &format!("`{}`", name),
-            Origin::Mir,
-        );
+        let mut err =
+            tcx.path_does_not_live_long_enough(borrow_span, &format!("`{}`", name), Origin::Mir);
         err.span_label(borrow_span, "borrowed value does not live long enough");
         err.span_label(
             drop_span,
@@ -532,11 +534,8 @@ fn report_unscoped_local_value_does_not_live_long_enough(
         );
 
         let tcx = self.tcx;
-        let mut err = tcx.path_does_not_live_long_enough(
-            borrow_span,
-            &format!("`{}`", name),
-            Origin::Mir,
-        );
+        let mut err =
+            tcx.path_does_not_live_long_enough(borrow_span, &format!("`{}`", name), Origin::Mir);
         err.span_label(borrow_span, "borrowed value does not live long enough");
         err.span_label(drop_span, "borrowed value only lives until here");
 
index 06412a386e84a6fe52a6da387ebec0b8d58709c4..56a4b44ac75ac64927305f3db11bf5afffa168a5 100644 (file)
@@ -10,7 +10,7 @@
 
 //! This query borrow-checks the MIR to (further) ensure it is not broken.
 
-use borrow_check::nll::region_infer::{RegionInferenceContext, RegionCausalInfo};
+use borrow_check::nll::region_infer::{RegionCausalInfo, RegionInferenceContext};
 use rustc::hir;
 use rustc::hir::def_id::DefId;
 use rustc::hir::map::definitions::DefPathData;
@@ -339,9 +339,7 @@ fn visit_statement_entry(
     ) {
         debug!(
             "MirBorrowckCtxt::process_statement({:?}, {:?}): {}",
-            location,
-            stmt,
-            flow_state
+            location, stmt, flow_state
         );
         let span = stmt.source_info.span;
 
@@ -443,9 +441,7 @@ fn visit_terminator_entry(
         let loc = location;
         debug!(
             "MirBorrowckCtxt::process_terminator({:?}, {:?}): {}",
-            location,
-            term,
-            flow_state
+            location, term, flow_state
         );
         let span = term.source_info.span;
 
@@ -584,8 +580,14 @@ fn visit_terminator_entry(
             TerminatorKind::Goto { target: _ }
             | TerminatorKind::Abort
             | TerminatorKind::Unreachable
-            | TerminatorKind::FalseEdges { real_target: _, imaginary_targets: _ }
-            | TerminatorKind::FalseUnwind { real_target: _, unwind: _ } => {
+            | TerminatorKind::FalseEdges {
+                real_target: _,
+                imaginary_targets: _,
+            }
+            | TerminatorKind::FalseUnwind {
+                real_target: _,
+                unwind: _,
+            } => {
                 // no data used, thus irrelevant to borrowck
             }
         }
@@ -685,7 +687,8 @@ enum LocalMutationIsAllowed {
 
 struct AccessErrorsReported {
     mutability_error: bool,
-    #[allow(dead_code)] conflict_error: bool,
+    #[allow(dead_code)]
+    conflict_error: bool,
 }
 
 #[derive(Copy, Clone)]
@@ -721,9 +724,9 @@ impl<'cx, 'gcx, 'tcx> MirBorrowckCtxt<'cx, 'gcx, 'tcx> {
     /// allowed to be split into separate Reservation and
     /// Activation phases.
     fn allow_two_phase_borrow(&self, kind: BorrowKind) -> bool {
-        self.tcx.two_phase_borrows() &&
-            (kind.allows_two_phase_borrow() ||
-             self.tcx.sess.opts.debugging_opts.two_phase_beyond_autoref)
+        self.tcx.two_phase_borrows()
+            && (kind.allows_two_phase_borrow()
+                || self.tcx.sess.opts.debugging_opts.two_phase_beyond_autoref)
     }
 
     /// Invokes `access_place` as appropriate for dropping the value
@@ -755,16 +758,9 @@ fn visit_terminator_drop(
                     let field_ty = gcx.normalize_associated_type_in_env(&field_ty, self.param_env);
                     let place = drop_place.clone().field(Field::new(index), field_ty);
 
-                    self.visit_terminator_drop(
-                        loc,
-                        term,
-                        flow_state,
-                        &place,
-                        field_ty,
-                        span,
-                    );
+                    self.visit_terminator_drop(loc, term, flow_state, &place, field_ty, span);
                 }
-            },
+            }
             _ => {
                 // We have now refined the type of the value being
                 // dropped (potentially) to just the type of a
@@ -781,7 +777,7 @@ fn visit_terminator_drop(
                         flow_state,
                     );
                 }
-            },
+            }
         }
     }
 
@@ -803,8 +799,11 @@ fn access_place(
 
         if let Activation(_, borrow_index) = rw {
             if self.reservation_error_reported.contains(&place_span.0) {
-                debug!("skipping access_place for activation of invalid reservation \
-                     place: {:?} borrow_index: {:?}", place_span.0, borrow_index);
+                debug!(
+                    "skipping access_place for activation of invalid reservation \
+                     place: {:?} borrow_index: {:?}",
+                    place_span.0, borrow_index
+                );
                 return AccessErrorsReported {
                     mutability_error: false,
                     conflict_error: true,
@@ -812,9 +811,13 @@ fn access_place(
             }
         }
 
-        if self.access_place_error_reported.contains(&(place_span.0.clone(), place_span.1)) {
-            debug!("access_place: suppressing error place_span=`{:?}` kind=`{:?}`",
-                   place_span, kind);
+        if self.access_place_error_reported
+            .contains(&(place_span.0.clone(), place_span.1))
+        {
+            debug!(
+                "access_place: suppressing error place_span=`{:?}` kind=`{:?}`",
+                place_span, kind
+            );
             return AccessErrorsReported {
                 mutability_error: false,
                 conflict_error: true,
@@ -827,9 +830,12 @@ fn access_place(
             self.check_access_for_conflict(context, place_span, sd, rw, flow_state);
 
         if conflict_error || mutability_error {
-            debug!("access_place: logging error place_span=`{:?}` kind=`{:?}`",
-                   place_span, kind);
-            self.access_place_error_reported.insert((place_span.0.clone(), place_span.1));
+            debug!(
+                "access_place: logging error place_span=`{:?}` kind=`{:?}`",
+                place_span, kind
+            );
+            self.access_place_error_reported
+                .insert((place_span.0.clone(), place_span.1));
         }
 
         AccessErrorsReported {
@@ -877,8 +883,7 @@ fn check_access_for_conflict(
 
                 (Read(kind), BorrowKind::Unique) | (Read(kind), BorrowKind::Mut { .. }) => {
                     // Reading from mere reservations of mutable-borrows is OK.
-                    if this.allow_two_phase_borrow(borrow.kind) && index.is_reservation()
-                    {
+                    if this.allow_two_phase_borrow(borrow.kind) && index.is_reservation() {
                         return Control::Continue;
                     }
 
@@ -917,15 +922,15 @@ fn check_access_for_conflict(
                                 place_span.0
                             );
                             this.reservation_error_reported.insert(place_span.0.clone());
-                        },
+                        }
                         Activation(_, activating) => {
                             debug!(
                                 "observing check_place for activation of \
                                  borrow_index: {:?}",
                                 activating
                             );
-                        },
-                        Read(..) | Write(..) => {},
+                        }
+                        Read(..) | Write(..) => {}
                     }
 
                     match kind {
@@ -1212,11 +1217,7 @@ fn check_for_invalidation_at_exit(
 
     /// Reports an error if this is a borrow of local data.
     /// This is called for all Yield statements on movable generators
-    fn check_for_local_borrow(
-        &mut self,
-        borrow: &BorrowData<'tcx>,
-        yield_span: Span)
-    {
+    fn check_for_local_borrow(&mut self, borrow: &BorrowData<'tcx>, yield_span: Span) {
         fn borrow_of_local_data<'tcx>(place: &Place<'tcx>) -> bool {
             match place {
                 Place::Static(..) => false,
@@ -1228,13 +1229,11 @@ fn borrow_of_local_data<'tcx>(place: &Place<'tcx>) -> bool {
                         ProjectionElem::Deref => false,
 
                         // For interior references and downcasts, find out if the base is local
-                        ProjectionElem::Field(..) |
-                        ProjectionElem::Index(..) |
-                        ProjectionElem::ConstantIndex { .. } |
-                        ProjectionElem::Subslice { .. } |
-                        ProjectionElem::Downcast(..) => {
-                            borrow_of_local_data(&proj.base)
-                        }
+                        ProjectionElem::Field(..)
+                        | ProjectionElem::Index(..)
+                        | ProjectionElem::ConstantIndex { .. }
+                        | ProjectionElem::Subslice { .. }
+                        | ProjectionElem::Downcast(..) => borrow_of_local_data(&proj.base),
                     }
                 }
             }
@@ -1243,9 +1242,13 @@ fn borrow_of_local_data<'tcx>(place: &Place<'tcx>) -> bool {
         debug!("check_for_local_borrow({:?})", borrow);
 
         if borrow_of_local_data(&borrow.borrowed_place) {
-            self.tcx.cannot_borrow_across_generator_yield(self.retrieve_borrow_span(borrow),
-                                                          yield_span,
-                                                          Origin::Mir).emit();
+            self.tcx
+                .cannot_borrow_across_generator_yield(
+                    self.retrieve_borrow_span(borrow),
+                    yield_span,
+                    Origin::Mir,
+                )
+                .emit();
         }
     }
 
@@ -1533,9 +1536,7 @@ fn check_access_permissions(
     ) -> bool {
         debug!(
             "check_access_permissions({:?}, {:?}, {:?})",
-            place,
-            kind,
-            is_local_mutation_allowed
+            place, kind, is_local_mutation_allowed
         );
         let mut error_reported = false;
         match kind {
@@ -1600,8 +1601,7 @@ fn check_access_permissions(
                         span,
                         &format!(
                             "Accessing `{:?}` with the kind `{:?}` shouldn't be possible",
-                            place,
-                            kind
+                            place, kind
                         ),
                     );
                 }
@@ -1700,9 +1700,7 @@ fn is_mutable<'d>(
                             let decl = &self.mir.upvar_decls[field.index()];
                             debug!(
                                 "decl.mutability={:?} local_mutation_is_allowed={:?} place={:?}",
-                                decl,
-                                is_local_mutation_allowed,
-                                place
+                                decl, is_local_mutation_allowed, place
                             );
                             match (decl.mutability, is_local_mutation_allowed) {
                                 (Mutability::Not, LocalMutationIsAllowed::No)
@@ -1723,7 +1721,6 @@ fn is_mutable<'d>(
         }
     }
 
-
     /// If this is a field projection, and the field is being projected from a closure type,
     /// then returns the index of the field being projected. Note that this closure will always
     /// be `self` in the current MIR, because that is the only time we directly access the fields
@@ -1927,9 +1924,7 @@ fn places_conflict(
     ) -> bool {
         debug!(
             "places_conflict({:?},{:?},{:?})",
-            borrow_place,
-            access_place,
-            access
+            borrow_place, access_place, access
         );
 
         // Return all the prefixes of `place` in reverse order, including
@@ -1955,8 +1950,7 @@ fn place_elements<'a, 'tcx>(place: &'a Place<'tcx>) -> Vec<&'a Place<'tcx>> {
         let access_components = place_elements(access_place);
         debug!(
             "places_conflict: components {:?} / {:?}",
-            borrow_components,
-            access_components
+            borrow_components, access_components
         );
 
         let borrow_components = borrow_components
@@ -2162,8 +2156,10 @@ fn each_borrow_involving_path<F>(
             let borrowed = &data[i.borrow_index()];
 
             if self.places_conflict(&borrowed.borrowed_place, place, access) {
-                debug!("each_borrow_involving_path: {:?} @ {:?} vs. {:?}/{:?}",
-                       i, borrowed, place, access);
+                debug!(
+                    "each_borrow_involving_path: {:?} @ {:?} vs. {:?}/{:?}",
+                    i, borrowed, place, access
+                );
                 let ctrl = op(self, i, borrowed);
                 if ctrl == Control::Break {
                     return;
index 9b598b8dd5d1190aad26eabf3ab20cb69d689ce8..66776a94ff01ff91a9b0c3b60a778214983d75a6 100644 (file)
@@ -257,10 +257,7 @@ pub(crate) fn new(
         let mut result = Self {
             definitions,
             elements: elements.clone(),
-            liveness_constraints: RegionValues::new(
-                elements,
-                num_region_variables,
-            ),
+            liveness_constraints: RegionValues::new(elements, num_region_variables),
             inferred_values: None,
             constraints: Vec::new(),
             type_tests: Vec::new(),
index eb2756e2245d409bffc260beb4629ba08aa120d4..2f0b4c24bd6f14ca8aef242511a95c13e3ba53b9 100644 (file)
@@ -201,10 +201,7 @@ impl RegionValues {
     /// Creates a new set of "region values" that tracks causal information.
     /// Each of the regions in num_region_variables will be initialized with an
     /// empty set of points and no causal information.
-    pub(super) fn new(
-        elements: &Rc<RegionValueElements>,
-        num_region_variables: usize,
-    ) -> Self {
+    pub(super) fn new(elements: &Rc<RegionValueElements>, num_region_variables: usize) -> Self {
         assert!(
             elements.num_universal_regions <= num_region_variables,
             "universal regions are a subset of the region variables"