use rustc_session::search_paths::PathKind;
use rustc_session::Session;
use rustc_span::symbol::{Ident, Symbol};
-use rustc_span::{FileName, RealFileName};
use rustc_trait_selection::traits;
use rustc_typeck as typeck;
use tracing::{info, warn};
check_output(output_paths, check)
}
-fn escape_dep_filename(filename: &FileName) -> String {
+fn escape_dep_filename(filename: &String) -> String {
// Apparently clang and gcc *only* escape spaces:
// http://llvm.org/klaus/clang/commit/9d50634cfc268ecc9a7250226dd5ca0e945240d4
- filename.to_string().replace(" ", "\\ ")
+ filename.replace(" ", "\\ ")
}
// Makefile comments only need escaping newlines and `\`.
.iter()
.filter(|fmap| fmap.is_real_file())
.filter(|fmap| !fmap.is_imported())
- .map(|fmap| escape_dep_filename(&fmap.unmapped_path.as_ref().unwrap_or(&fmap.name)))
+ .map(|fmap| escape_dep_filename(&fmap.name.prefer_local().to_string()))
.collect();
if let Some(ref backend) = sess.opts.debugging_opts.codegen_backend {
for cnum in resolver.cstore().crates_untracked() {
let source = resolver.cstore().crate_source_untracked(cnum);
if let Some((path, _)) = source.dylib {
- let file_name = FileName::Real(RealFileName::Named(path));
- files.push(escape_dep_filename(&file_name));
+ files.push(escape_dep_filename(&path.display().to_string()));
}
if let Some((path, _)) = source.rlib {
- let file_name = FileName::Real(RealFileName::Named(path));
- files.push(escape_dep_filename(&file_name));
+ files.push(escape_dep_filename(&path.display().to_string()));
}
if let Some((path, _)) = source.rmeta {
- let file_name = FileName::Real(RealFileName::Named(path));
- files.push(escape_dep_filename(&file_name));
+ files.push(escape_dep_filename(&path.display().to_string()));
}
}
});
sess.time("MIR_effect_checking", || {
for def_id in tcx.body_owners() {
- mir::transform::check_unsafety::check_unsafety(tcx, def_id);
+ if tcx.sess.opts.debugging_opts.thir_unsafeck {
+ tcx.ensure().thir_check_unsafety(def_id);
+ } else {
+ mir::transform::check_unsafety::check_unsafety(tcx, def_id);
+ }
if tcx.hir().body_const_context(def_id).is_some() {
tcx.ensure()