Skip to content

Commit 27270e6

Browse files
committed
Auto merge of #47350 - kennytm:rollup, r=kennytm
Rollup of 12 pull requests - Successful merges: #47283, #47288, #47289, #47298, #47305, #47307, #47310, #47322, #47324, #47328, #47340, #47344 - Failed merges:
2 parents 73ac5d6 + 5bd7d69 commit 27270e6

File tree

39 files changed

+244
-146
lines changed

39 files changed

+244
-146
lines changed

src/Cargo.lock

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ci/docker/scripts/musl.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ exit 1
3030
TAG=$1
3131
shift
3232

33-
MUSL=musl-1.1.17
33+
MUSL=musl-1.1.18
3434

3535
# may have been downloaded in a previous run
3636
if [ ! -d $MUSL ]; then

src/librustc/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
#![feature(drain_filter)]
4949
#![feature(dyn_trait)]
5050
#![feature(from_ref)]
51+
#![feature(fs_read_write)]
5152
#![feature(i128)]
5253
#![feature(i128_type)]
5354
#![feature(inclusive_range)]

src/librustc/lint/context.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1046,7 +1046,7 @@ pub fn check_ast_crate(sess: &Session, krate: &ast::Crate) {
10461046
// calculated the lint levels for all AST nodes.
10471047
for (_id, lints) in cx.buffered.map {
10481048
for early_lint in lints {
1049-
span_bug!(early_lint.span, "failed to process bufferd lint here");
1049+
span_bug!(early_lint.span, "failed to process buffered lint here");
10501050
}
10511051
}
10521052
}

src/librustc/util/common.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -218,13 +218,10 @@ pub fn record_time<T, F>(accu: &Cell<Duration>, f: F) -> T where
218218
// Memory reporting
219219
#[cfg(unix)]
220220
fn get_resident() -> Option<usize> {
221-
use std::fs::File;
222-
use std::io::Read;
221+
use std::fs;
223222

224223
let field = 1;
225-
let mut f = File::open("/proc/self/statm").ok()?;
226-
let mut contents = String::new();
227-
f.read_to_string(&mut contents).ok()?;
224+
let contents = fs::read_string("/proc/self/statm").ok()?;
228225
let s = contents.split_whitespace().nth(field)?;
229226
let npages = s.parse::<usize>().ok()?;
230227
Some(npages * 4096)

src/librustc_back/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
#![feature(box_syntax)]
3030
#![feature(const_fn)]
31+
#![feature(fs_read_write)]
3132

3233
extern crate syntax;
3334
extern crate rand;

src/librustc_back/target/mod.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
use serialize::json::{Json, ToJson};
4848
use std::collections::BTreeMap;
4949
use std::default::Default;
50-
use std::io::prelude::*;
5150
use syntax::abi::{Abi, lookup as lookup_abi};
5251

5352
use {LinkerFlavor, PanicStrategy, RelroLevel};
@@ -809,14 +808,12 @@ impl Target {
809808
pub fn search(target: &str) -> Result<Target, String> {
810809
use std::env;
811810
use std::ffi::OsString;
812-
use std::fs::File;
811+
use std::fs;
813812
use std::path::{Path, PathBuf};
814813
use serialize::json;
815814

816815
fn load_file(path: &Path) -> Result<Target, String> {
817-
let mut f = File::open(path).map_err(|e| e.to_string())?;
818-
let mut contents = Vec::new();
819-
f.read_to_end(&mut contents).map_err(|e| e.to_string())?;
816+
let contents = fs::read(path).map_err(|e| e.to_string())?;
820817
let obj = json::from_reader(&mut &contents[..])
821818
.map_err(|e| e.to_string())?;
822819
Target::from_json(obj)

src/librustc_incremental/assert_dep_graph.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ use rustc::hir::intravisit::{self, NestedVisitorMap, Visitor};
5555
use rustc::ich::{ATTR_IF_THIS_CHANGED, ATTR_THEN_THIS_WOULD_NEED};
5656
use graphviz::IntoCow;
5757
use std::env;
58-
use std::fs::File;
58+
use std::fs::{self, File};
5959
use std::io::Write;
6060
use syntax::ast;
6161
use syntax_pos::Span;
@@ -260,7 +260,7 @@ fn dump_graph(tcx: TyCtxt) {
260260
let dot_path = format!("{}.dot", path);
261261
let mut v = Vec::new();
262262
dot::render(&GraphvizDepGraph(nodes, edges), &mut v).unwrap();
263-
File::create(&dot_path).and_then(|mut f| f.write_all(&v)).unwrap();
263+
fs::write(dot_path, v).unwrap();
264264
}
265265
}
266266

src/librustc_incremental/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#![deny(warnings)]
1717

1818
#![feature(conservative_impl_trait)]
19+
#![feature(fs_read_write)]
1920
#![feature(i128_type)]
2021
#![feature(inclusive_range_syntax)]
2122
#![feature(specialization)]

src/librustc_incremental/persist/file_format.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
2222
use std::io::{self, Read};
2323
use std::path::Path;
24-
use std::fs::File;
24+
use std::fs;
2525
use std::env;
2626

2727
use rustc::session::config::nightly_options;
@@ -66,11 +66,7 @@ pub fn read_file(report_incremental_info: bool, path: &Path)
6666
return Ok(None);
6767
}
6868

69-
let mut file = File::open(path)?;
70-
let file_size = file.metadata()?.len() as usize;
71-
72-
let mut data = Vec::with_capacity(file_size);
73-
file.read_to_end(&mut data)?;
69+
let data = fs::read(path)?;
7470

7571
let mut file = io::Cursor::new(data);
7672

src/librustc_incremental/persist/save.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ use rustc::util::common::time;
1515
use rustc_data_structures::fx::FxHashMap;
1616
use rustc_serialize::Encodable as RustcEncodable;
1717
use rustc_serialize::opaque::Encoder;
18-
use std::io::{self, Cursor, Write};
19-
use std::fs::{self, File};
18+
use std::io::{self, Cursor};
19+
use std::fs;
2020
use std::path::PathBuf;
2121

2222
use super::data::*;
@@ -125,7 +125,7 @@ fn save_in<F>(sess: &Session, path_buf: PathBuf, encode: F)
125125

126126
// write the data out
127127
let data = wr.into_inner();
128-
match File::create(&path_buf).and_then(|mut file| file.write_all(&data)) {
128+
match fs::write(&path_buf, data) {
129129
Ok(_) => {
130130
debug!("save: data written to disk successfully");
131131
}

src/librustc_metadata/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
#![feature(box_patterns)]
1717
#![feature(conservative_impl_trait)]
18+
#![feature(fs_read_write)]
1819
#![feature(i128_type)]
1920
#![feature(libc)]
2021
#![feature(proc_macro_internals)]

src/librustc_metadata/locator.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ use rustc_back::target::Target;
237237

238238
use std::cmp;
239239
use std::fmt;
240-
use std::fs::{self, File};
240+
use std::fs;
241241
use std::io::{self, Read};
242242
use std::path::{Path, PathBuf};
243243
use std::time::Instant;
@@ -870,10 +870,7 @@ fn get_metadata_section_imp(target: &Target,
870870
}
871871
}
872872
CrateFlavor::Rmeta => {
873-
let mut file = File::open(filename).map_err(|_|
874-
format!("could not open file: '{}'", filename.display()))?;
875-
let mut buf = vec![];
876-
file.read_to_end(&mut buf).map_err(|_|
873+
let buf = fs::read(filename).map_err(|_|
877874
format!("failed to read rmeta metadata: '{}'", filename.display()))?;
878875
OwningRef::new(buf).map_owner_box().erase_owner()
879876
}

src/librustc_mir/borrow_check/nll/type_check/liveness.rs

+1
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ impl<'gen, 'typeck, 'flow, 'gcx, 'tcx> TypeLivenessGenerator<'gen, 'typeck, 'flo
214214
// associated types here and possibly recursively process.
215215
for ty in dtorck_types {
216216
let ty = self.cx.normalize(&ty, location);
217+
let ty = self.cx.infcx.resolve_type_and_region_vars_if_possible(&ty);
217218
match ty.sty {
218219
ty::TyParam(..) | ty::TyProjection(..) | ty::TyAnon(..) => {
219220
let cause = Cause::DropVar(dropped_local, location);

src/librustc_mir/dataflow/graphviz.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use rustc_data_structures::indexed_vec::Idx;
1818
use dot;
1919
use dot::IntoCow;
2020

21-
use std::fs::File;
21+
use std::fs;
2222
use std::io;
2323
use std::io::prelude::*;
2424
use std::marker::PhantomData;
@@ -67,7 +67,7 @@ pub(crate) fn print_borrowck_graph_to<'a, 'tcx, BD, P>(
6767
dot::render(&g, &mut v)?;
6868
debug!("print_borrowck_graph_to path: {} node_id: {}",
6969
path.display(), mbcx.node_id);
70-
File::create(path).and_then(|mut f| f.write_all(&v))
70+
fs::write(path, v)
7171
}
7272

7373
pub type Node = BasicBlock;

src/librustc_mir/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Rust MIR: a lowered representation of Rust. Also: an experiment!
2424
#![feature(core_intrinsics)]
2525
#![feature(decl_macro)]
2626
#![feature(dyn_trait)]
27+
#![feature(fs_read_write)]
2728
#![feature(i128_type)]
2829
#![feature(inclusive_range_syntax)]
2930
#![feature(inclusive_range)]

src/librustc_trans/back/link.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -342,9 +342,7 @@ fn archive_config<'a>(sess: &'a Session,
342342
fn emit_metadata<'a>(sess: &'a Session, trans: &CrateTranslation, tmpdir: &TempDir)
343343
-> PathBuf {
344344
let out_filename = tmpdir.path().join(METADATA_FILENAME);
345-
let result = fs::File::create(&out_filename).and_then(|mut f| {
346-
f.write_all(&trans.metadata.raw_data)
347-
});
345+
let result = fs::write(&out_filename, &trans.metadata.raw_data);
348346

349347
if let Err(e) = result {
350348
sess.fatal(&format!("failed to write {}: {}", out_filename.display(), e));

src/librustc_trans/back/write.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,8 @@ use rustc_demangle;
4646

4747
use std::any::Any;
4848
use std::ffi::{CString, CStr};
49-
use std::fs::{self, File};
50-
use std::io;
51-
use std::io::{Read, Write};
49+
use std::fs;
50+
use std::io::{self, Write};
5251
use std::mem;
5352
use std::path::{Path, PathBuf};
5453
use std::str;
@@ -666,7 +665,7 @@ unsafe fn codegen(cgcx: &CodegenContext,
666665
timeline.record("make-bc");
667666

668667
if write_bc {
669-
if let Err(e) = File::create(&bc_out).and_then(|mut f| f.write_all(data)) {
668+
if let Err(e) = fs::write(&bc_out, data) {
670669
diag_handler.err(&format!("failed to write bytecode: {}", e));
671670
}
672671
timeline.record("write-bc");
@@ -675,7 +674,7 @@ unsafe fn codegen(cgcx: &CodegenContext,
675674
if config.emit_bc_compressed {
676675
let dst = bc_out.with_extension(RLIB_BYTECODE_EXTENSION);
677676
let data = bytecode::encode(&mtrans.llmod_id, data);
678-
if let Err(e) = File::create(&dst).and_then(|mut f| f.write_all(&data)) {
677+
if let Err(e) = fs::write(&dst, data) {
679678
diag_handler.err(&format!("failed to write bytecode: {}", e));
680679
}
681680
timeline.record("compress-bc");
@@ -799,9 +798,7 @@ fn binaryen_assemble(cgcx: &CodegenContext,
799798
object: &Path) {
800799
use rustc_binaryen::{Module, ModuleOptions};
801800

802-
let input = File::open(&assembly).and_then(|mut f| {
803-
let mut contents = Vec::new();
804-
f.read_to_end(&mut contents)?;
801+
let input = fs::read(&assembly).and_then(|contents| {
805802
Ok(CString::new(contents)?)
806803
});
807804
let mut options = ModuleOptions::new();
@@ -818,7 +815,7 @@ fn binaryen_assemble(cgcx: &CodegenContext,
818815
.map_err(|e| io::Error::new(io::ErrorKind::Other, e))
819816
});
820817
let err = assembled.and_then(|binary| {
821-
File::create(&object).and_then(|mut f| f.write_all(binary.data()))
818+
fs::write(&object, binary.data())
822819
});
823820
if let Err(e) = err {
824821
handler.err(&format!("failed to run binaryen assembler: {}", e));

src/librustc_trans/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#![feature(box_patterns)]
2323
#![feature(box_syntax)]
2424
#![feature(custom_attribute)]
25+
#![feature(fs_read_write)]
2526
#![allow(unused_attributes)]
2627
#![feature(i128_type)]
2728
#![feature(i128)]

src/librustdoc/externalfiles.rs

+8-9
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use std::fs::File;
12-
use std::io::prelude::*;
11+
use std::fs;
1312
use std::path::Path;
1413
use std::str;
1514
use html::markdown::{Markdown, RenderType};
@@ -65,13 +64,13 @@ pub enum LoadStringError {
6564

6665
pub fn load_string<P: AsRef<Path>>(file_path: P) -> Result<String, LoadStringError> {
6766
let file_path = file_path.as_ref();
68-
let mut contents = vec![];
69-
let result = File::open(file_path)
70-
.and_then(|mut f| f.read_to_end(&mut contents));
71-
if let Err(e) = result {
72-
eprintln!("error reading `{}`: {}", file_path.display(), e);
73-
return Err(LoadStringError::ReadFail);
74-
}
67+
let contents = match fs::read(file_path) {
68+
Ok(bytes) => bytes,
69+
Err(e) => {
70+
eprintln!("error reading `{}`: {}", file_path.display(), e);
71+
return Err(LoadStringError::ReadFail);
72+
}
73+
};
7574
match str::from_utf8(&contents) {
7675
Ok(s) => Ok(s.to_string()),
7776
Err(_) => {

src/librustdoc/html/render.rs

+5-15
Original file line numberDiff line numberDiff line change
@@ -866,15 +866,8 @@ fn write_shared(cx: &Context,
866866
write(cx.dst.join("main.css"),
867867
include_bytes!("static/styles/main.css"))?;
868868
if let Some(ref css) = cx.shared.css_file_extension {
869-
let mut content = String::new();
870-
let css = css.as_path();
871-
let mut f = try_err!(File::open(css), css);
872-
873-
try_err!(f.read_to_string(&mut content), css);
874-
let css = cx.dst.join("theme.css");
875-
let css = css.as_path();
876-
let mut f = try_err!(File::create(css), css);
877-
try_err!(write!(f, "{}", &content), css);
869+
let out = cx.dst.join("theme.css");
870+
try_err!(fs::copy(css, out), css);
878871
}
879872
write(cx.dst.join("normalize.css"),
880873
include_bytes!("static/normalize.css"))?;
@@ -1027,7 +1020,7 @@ fn render_sources(dst: &Path, scx: &mut SharedContext,
10271020
/// Writes the entire contents of a string to a destination, not attempting to
10281021
/// catch any errors.
10291022
fn write(dst: PathBuf, contents: &[u8]) -> Result<(), Error> {
1030-
Ok(try_err!(try_err!(File::create(&dst), &dst).write_all(contents), &dst))
1023+
Ok(try_err!(fs::write(&dst, contents), &dst))
10311024
}
10321025

10331026
/// Takes a path to a source file and cleans the path to it. This canonicalizes
@@ -1124,16 +1117,13 @@ impl<'a> SourceCollector<'a> {
11241117
return Ok(());
11251118
}
11261119

1127-
let mut contents = Vec::new();
1128-
File::open(&p).and_then(|mut f| f.read_to_end(&mut contents))?;
1129-
1130-
let contents = str::from_utf8(&contents).unwrap();
1120+
let contents = fs::read_string(&p)?;
11311121

11321122
// Remove the utf-8 BOM if any
11331123
let contents = if contents.starts_with("\u{feff}") {
11341124
&contents[3..]
11351125
} else {
1136-
contents
1126+
&contents[..]
11371127
};
11381128

11391129
// Create the intermediate directories

0 commit comments

Comments
 (0)