diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-02-26 21:00:43 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-03-04 15:59:30 -0800 |
| commit | 95d904625b4d45af80b4e40d51a3a0fde1abaa8a (patch) | |
| tree | b0872e63b8d75543ce5141ceba44c12c459474f2 /src/librustc/session | |
| parent | 3b3bb0e682c2d252e9f62dd9df5cff9552af91ad (diff) | |
| download | rust-95d904625b4d45af80b4e40d51a3a0fde1abaa8a.tar.gz rust-95d904625b4d45af80b4e40d51a3a0fde1abaa8a.zip | |
std: Deprecate std::old_io::fs
This commit deprecates the majority of std::old_io::fs in favor of std::fs and its new functionality. Some functions remain non-deprecated but are now behind a feature gate called `old_fs`. These functions will be deprecated once suitable replacements have been implemented. The compiler has been migrated to new `std::fs` and `std::path` APIs where appropriate as part of this change.
Diffstat (limited to 'src/librustc/session')
| -rw-r--r-- | src/librustc/session/config.rs | 26 | ||||
| -rw-r--r-- | src/librustc/session/mod.rs | 17 | ||||
| -rw-r--r-- | src/librustc/session/search_paths.rs | 7 |
3 files changed, 27 insertions, 23 deletions
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs index 536caece21f..a4355803f4a 100644 --- a/src/librustc/session/config.rs +++ b/src/librustc/session/config.rs @@ -38,6 +38,7 @@ use std::collections::HashMap; use std::collections::hash_map::Entry::{Occupied, Vacant}; use std::env; use std::fmt; +use std::path::PathBuf; use llvm; @@ -89,7 +90,7 @@ pub struct Options { // this. pub search_paths: SearchPaths, pub libs: Vec<(String, cstore::NativeLibraryKind)>, - pub maybe_sysroot: Option<Path>, + pub maybe_sysroot: Option<PathBuf>, pub target_triple: String, // User-specified cfg meta items. The compiler itself will add additional // items to the crate config, and during parsing the entire crate config @@ -103,7 +104,7 @@ pub struct Options { pub no_analysis: bool, pub debugging_opts: DebuggingOptions, /// Whether to write dependency files. It's (enabled, optional filename). - pub write_dependency_info: (bool, Option<Path>), + pub write_dependency_info: (bool, Option<PathBuf>), pub prints: Vec<PrintRequest>, pub cg: CodegenOptions, pub color: ColorConfig, @@ -142,7 +143,7 @@ pub enum PrintRequest { pub enum Input { /// Load source from file - File(Path), + File(PathBuf), /// The string is the source Str(String) } @@ -150,7 +151,8 @@ pub enum Input { impl Input { pub fn filestem(&self) -> String { match *self { - Input::File(ref ifile) => ifile.filestem_str().unwrap().to_string(), + Input::File(ref ifile) => ifile.file_stem().unwrap() + .to_str().unwrap().to_string(), Input::Str(_) => "rust_out".to_string(), } } @@ -158,14 +160,14 @@ impl Input { #[derive(Clone)] pub struct OutputFilenames { - pub out_directory: Path, + pub out_directory: PathBuf, pub out_filestem: String, - pub single_output_file: Option<Path>, + pub single_output_file: Option<PathBuf>, pub extra: String, } impl OutputFilenames { - pub fn path(&self, flavor: OutputType) -> Path { + pub fn path(&self, flavor: OutputType) -> PathBuf { match self.single_output_file { Some(ref path) => return path.clone(), None => {} @@ -173,8 +175,8 @@ impl OutputFilenames { self.temp_path(flavor) } - pub fn temp_path(&self, flavor: OutputType) -> Path { - let base = self.out_directory.join(self.filestem()); + pub fn temp_path(&self, flavor: OutputType) -> PathBuf { + let base = self.out_directory.join(&self.filestem()); match flavor { OutputTypeBitcode => base.with_extension("bc"), OutputTypeAssembly => base.with_extension("s"), @@ -185,8 +187,8 @@ impl OutputFilenames { } } - pub fn with_extension(&self, extension: &str) -> Path { - self.out_directory.join(self.filestem()).with_extension(extension) + pub fn with_extension(&self, extension: &str) -> PathBuf { + self.out_directory.join(&self.filestem()).with_extension(extension) } pub fn filestem(&self) -> String { @@ -897,7 +899,7 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options { let cg = build_codegen_options(matches); - let sysroot_opt = matches.opt_str("sysroot").map(|m| Path::new(m)); + let sysroot_opt = matches.opt_str("sysroot").map(|m| PathBuf::new(&m)); let target = matches.opt_str("target").unwrap_or( host_triple().to_string()); let opt_level = { diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs index 67c39bcca81..a478cb79796 100644 --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs @@ -26,8 +26,9 @@ use syntax::{ast, codemap}; use rustc_back::target::Target; +use std::path::{Path, PathBuf}; use std::cell::{Cell, RefCell}; -use std::os; +use std::env; pub mod config; pub mod search_paths; @@ -44,11 +45,11 @@ pub struct Session { pub entry_fn: RefCell<Option<(NodeId, codemap::Span)>>, pub entry_type: Cell<Option<config::EntryFnType>>, pub plugin_registrar_fn: Cell<Option<ast::NodeId>>, - pub default_sysroot: Option<Path>, + pub default_sysroot: Option<PathBuf>, // The name of the root source file of the crate, in the local file system. The path is always // expected to be absolute. `None` means that there is no source file. - pub local_crate_source_file: Option<Path>, - pub working_dir: Path, + pub local_crate_source_file: Option<PathBuf>, + pub working_dir: PathBuf, pub lint_store: RefCell<lint::LintStore>, pub lints: RefCell<NodeMap<Vec<(lint::LintId, codemap::Span, String)>>>, pub crate_types: RefCell<Vec<config::CrateType>>, @@ -310,7 +311,7 @@ fn split_msg_into_multilines(msg: &str) -> Option<String> { } pub fn build_session(sopts: config::Options, - local_crate_source_file: Option<Path>, + local_crate_source_file: Option<PathBuf>, registry: diagnostics::registry::Registry) -> Session { // FIXME: This is not general enough to make the warning lint completely override @@ -333,7 +334,7 @@ pub fn build_session(sopts: config::Options, } pub fn build_session_(sopts: config::Options, - local_crate_source_file: Option<Path>, + local_crate_source_file: Option<PathBuf>, span_diagnostic: diagnostic::SpanHandler) -> Session { let host = match Target::search(config::host_triple()) { @@ -355,7 +356,7 @@ pub fn build_session_(sopts: config::Options, if path.is_absolute() { path.clone() } else { - os::getcwd().unwrap().join(&path) + env::current_dir().unwrap().join(&path) } ); @@ -378,7 +379,7 @@ pub fn build_session_(sopts: config::Options, plugin_registrar_fn: Cell::new(None), default_sysroot: default_sysroot, local_crate_source_file: local_crate_source_file, - working_dir: os::getcwd().unwrap(), + working_dir: env::current_dir().unwrap(), lint_store: RefCell::new(lint::LintStore::new()), lints: RefCell::new(NodeMap()), crate_types: RefCell::new(Vec::new()), diff --git a/src/librustc/session/search_paths.rs b/src/librustc/session/search_paths.rs index c314a999f24..f85fb303910 100644 --- a/src/librustc/session/search_paths.rs +++ b/src/librustc/session/search_paths.rs @@ -9,15 +9,16 @@ // except according to those terms. use std::slice; +use std::path::{Path, PathBuf}; #[derive(Clone, Debug)] pub struct SearchPaths { - paths: Vec<(PathKind, Path)>, + paths: Vec<(PathKind, PathBuf)>, } pub struct Iter<'a> { kind: PathKind, - iter: slice::Iter<'a, (PathKind, Path)>, + iter: slice::Iter<'a, (PathKind, PathBuf)>, } #[derive(Eq, PartialEq, Clone, Copy, Debug)] @@ -49,7 +50,7 @@ impl SearchPaths { } else { (PathKind::All, path) }; - self.paths.push((kind, Path::new(path))); + self.paths.push((kind, PathBuf::new(path))); } pub fn iter(&self, kind: PathKind) -> Iter { |
