Skip to content

Commit f6d7514

Browse files
committed
Auto merge of #45344 - kennytm:rollup, r=kennytm
Rollup of 10 pull requests - Successful merges: #45097, #45151, #45307, #45308, #45310, #45315, #45321, #45329, #45338, #45339 - Failed merges:
2 parents 0be6863 + 7f72b31 commit f6d7514

File tree

22 files changed

+83
-91
lines changed

22 files changed

+83
-91
lines changed

.travis.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ matrix:
3636
NO_LLVM_ASSERTIONS=1
3737
NO_DEBUG_ASSERTIONS=1
3838
os: osx
39-
osx_image: xcode7
39+
osx_image: xcode7.3
4040
if: branch = auto
4141
4242
# macOS builders. These are placed near the beginning because they are very
@@ -57,7 +57,7 @@ matrix:
5757
NO_LLVM_ASSERTIONS=1
5858
NO_DEBUG_ASSERTIONS=1
5959
os: osx
60-
osx_image: xcode8.2
60+
osx_image: xcode8.3
6161
if: branch = auto
6262
6363
- env: >
@@ -71,7 +71,7 @@ matrix:
7171
NO_LLVM_ASSERTIONS=1
7272
NO_DEBUG_ASSERTIONS=1
7373
os: osx
74-
osx_image: xcode8.2
74+
osx_image: xcode8.3
7575
if: branch = auto
7676
7777
# OSX builders producing releases. These do not run the full test suite and
@@ -91,7 +91,7 @@ matrix:
9191
NO_LLVM_ASSERTIONS=1
9292
NO_DEBUG_ASSERTIONS=1
9393
os: osx
94-
osx_image: xcode7
94+
osx_image: xcode7.3
9595
if: branch = auto
9696
9797
- env: >
@@ -105,7 +105,7 @@ matrix:
105105
NO_LLVM_ASSERTIONS=1
106106
NO_DEBUG_ASSERTIONS=1
107107
os: osx
108-
osx_image: xcode7
108+
osx_image: xcode7.3
109109
if: branch = auto
110110
111111
# Linux builders, remaining docker images

src/bootstrap/bootstrap.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,8 @@ def update_submodules(self):
648648
if not ((module.endswith("llvm") and
649649
self.get_toml('llvm-config')) or
650650
(module.endswith("jemalloc") and
651-
self.get_toml('jemalloc')))]
651+
(self.get_toml('use-jemalloc') == "false" or
652+
self.get_toml('jemalloc'))))]
652653
run(["git", "submodule", "update",
653654
"--init", "--recursive"] + submodules,
654655
cwd=self.rust_root, verbose=self.verbose)

src/doc/rustdoc/src/command-line-arguments.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ Using this flag looks like this:
9696
$ rustdoc src/lib.rs --crate-name mycrate
9797
```
9898

99-
By default, `rustodc` assumes that the name of your crate is the same name
99+
By default, `rustdoc` assumes that the name of your crate is the same name
100100
as the `.rs` file. `--crate-name` lets you override this assumption with
101101
whatever name you choose.
102102

103-
## `-L`/`--library-path`:
103+
## `-L`/`--library-path`: where to look for dependencies
104104

105105
Using this flag looks like this:
106106

@@ -186,7 +186,7 @@ on documentation tests](documentation-tests.html).
186186

187187
See also `--test-args`.
188188

189-
## `--test-args`:
189+
## `--test-args`: pass options to test runner
190190

191191
Using this flag looks like this:
192192

@@ -199,7 +199,7 @@ For more, see [the chapter on documentation tests](documentation-tests.html).
199199

200200
See also `--test`.
201201

202-
## `--target`:
202+
## `--target`: generate documentation for the specified target triple
203203

204204
Using this flag looks like this:
205205

@@ -253,7 +253,7 @@ $ rustdoc README.md --html-before-content extra.html
253253
```
254254

255255
This flag takes a list of files, and inserts them inside the `<body>` tag but
256-
before the other content `rustodc` would normally produce in the rendered
256+
before the other content `rustdoc` would normally produce in the rendered
257257
documentation.
258258

259259
## `--html-after-content`: include more HTML after the content
@@ -266,7 +266,7 @@ $ rustdoc README.md --html-after-content extra.html
266266
```
267267

268268
This flag takes a list of files, and inserts them before the `</body>` tag but
269-
after the other content `rustodc` would normally produce in the rendered
269+
after the other content `rustdoc` would normally produce in the rendered
270270
documentation.
271271

272272

src/libcore/tests/num/flt2dec/estimator.rs

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

11-
// FIXME https://github.com/kripken/emscripten/issues/4563
12-
// NB we have to actually not compile this test to avoid
13-
// an undefined symbol error
14-
#![cfg(not(target_os = "emscripten"))]
15-
1611
use core::num::flt2dec::estimator::*;
1712

1813
#[test]

src/librustc/middle/dataflow.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ fn build_local_id_to_index(body: Option<&hir::Body>,
171171
-> FxHashMap<hir::ItemLocalId, Vec<CFGIndex>> {
172172
let mut index = FxHashMap();
173173

174-
// FIXME (#6298): Would it be better to fold formals from decl
174+
// FIXME(#15020) Would it be better to fold formals from decl
175175
// into cfg itself? i.e. introduce a fn-based flow-graph in
176176
// addition to the current block-based flow-graph, rather than
177177
// have to put traversals like this here?

src/librustc/middle/mem_categorization.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -477,10 +477,8 @@ impl<'a, 'gcx, 'tcx> MemCategorizationContext<'a, 'gcx, 'tcx> {
477477

478478
fn pat_ty(&self, pat: &hir::Pat) -> McResult<Ty<'tcx>> {
479479
let base_ty = self.node_ty(pat.hir_id)?;
480-
// FIXME (Issue #18207): This code detects whether we are
481-
// looking at a `ref x`, and if so, figures out what the type
482-
// *being borrowed* is. But ideally we would put in a more
483-
// fundamental fix to this conflated use of the node id.
480+
// This code detects whether we are looking at a `ref x`,
481+
// and if so, figures out what the type *being borrowed* is.
484482
let ret_ty = match pat.node {
485483
PatKind::Binding(..) => {
486484
let bm = *self.tables

src/librustc/middle/region.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -960,7 +960,7 @@ fn resolve_expr<'a, 'tcx>(visitor: &mut RegionResolutionVisitor<'a, 'tcx>, expr:
960960

961961
hir::ExprAssignOp(..) | hir::ExprIndex(..) |
962962
hir::ExprUnary(..) | hir::ExprCall(..) | hir::ExprMethodCall(..) => {
963-
// FIXME(#6268) Nested method calls
963+
// FIXME(https://github.com/rust-lang/rfcs/issues/811) Nested method calls
964964
//
965965
// The lifetimes for a call or method call look as follows:
966966
//
@@ -1081,8 +1081,6 @@ fn resolve_local<'a, 'tcx>(visitor: &mut RegionResolutionVisitor<'a, 'tcx>,
10811081
// Here, the expression `[...]` has an extended lifetime due to rule
10821082
// A, but the inner rvalues `a()` and `b()` have an extended lifetime
10831083
// due to rule C.
1084-
//
1085-
// FIXME(#6308) -- Note that `[]` patterns work more smoothly post-DST.
10861084

10871085
if let Some(expr) = init {
10881086
record_rvalue_scope_if_borrow_expr(visitor, &expr, blk_scope);

src/librustc/session/filesearch.rs

-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ pub enum FileMatch {
2828
}
2929

3030
// A module for searching for libraries
31-
// FIXME (#2658): I'm not happy how this module turned out. Should
32-
// probably just be folded into cstore.
3331

3432
pub struct FileSearch<'a> {
3533
pub sysroot: &'a Path,

src/librustc/traits/coherence.rs

-1
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,6 @@ fn uncovered_tys<'tcx>(tcx: TyCtxt, ty: Ty<'tcx>, infer_is_local: InferIsLocal)
252252

253253
fn is_type_parameter(ty: Ty) -> bool {
254254
match ty.sty {
255-
// FIXME(#20590) straighten story about projection types
256255
ty::TyProjection(..) | ty::TyParam(..) => true,
257256
_ => false,
258257
}

src/librustc/traits/select.rs

+2-12
Original file line numberDiff line numberDiff line change
@@ -1309,13 +1309,13 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> {
13091309
};
13101310

13111311
if obligation.predicate.skip_binder().self_ty().is_ty_var() {
1312-
// FIXME(#20297): Self is a type variable (e.g. `_: AsRef<str>`).
1312+
// Self is a type variable (e.g. `_: AsRef<str>`).
13131313
//
13141314
// This is somewhat problematic, as the current scheme can't really
13151315
// handle it turning to be a projection. This does end up as truly
13161316
// ambiguous in most cases anyway.
13171317
//
1318-
// Until this is fixed, take the fast path out - this also improves
1318+
// Take the fast path out - this also improves
13191319
// performance by preventing assemble_candidates_from_impls from
13201320
// matching every impl for this trait.
13211321
return Ok(SelectionCandidateSet { vec: vec![], ambiguous: true });
@@ -1383,8 +1383,6 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> {
13831383
{
13841384
debug!("assemble_candidates_for_projected_tys({:?})", obligation);
13851385

1386-
// FIXME(#20297) -- just examining the self-type is very simplistic
1387-
13881386
// before we go into the whole skolemization thing, just
13891387
// quickly check if the self-type is a projection at all.
13901388
match obligation.predicate.0.trait_ref.self_ty().sty {
@@ -2174,14 +2172,6 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> {
21742172
}
21752173

21762174
ty::TyClosure(def_id, ref substs) => {
2177-
// FIXME(#27086). We are invariant w/r/t our
2178-
// func_substs, but we don't see them as
2179-
// constituent types; this seems RIGHT but also like
2180-
// something that a normal type couldn't simulate. Is
2181-
// this just a gap with the way that PhantomData and
2182-
// OIBIT interact? That is, there is no way to say
2183-
// "make me invariant with respect to this TYPE, but
2184-
// do not act as though I can reach it"
21852175
substs.upvar_tys(def_id, self.tcx()).collect()
21862176
}
21872177

src/librustc/ty/outlives.rs

-36
Original file line numberDiff line numberDiff line change
@@ -73,42 +73,6 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
7373
// projection).
7474
match ty.sty {
7575
ty::TyClosure(def_id, ref substs) => {
76-
// FIXME(#27086). We do not accumulate from substs, since they
77-
// don't represent reachable data. This means that, in
78-
// practice, some of the lifetime parameters might not
79-
// be in scope when the body runs, so long as there is
80-
// no reachable data with that lifetime. For better or
81-
// worse, this is consistent with fn types, however,
82-
// which can also encapsulate data in this fashion
83-
// (though it's somewhat harder, and typically
84-
// requires virtual dispatch).
85-
//
86-
// Note that changing this (in a naive way, at least)
87-
// causes regressions for what appears to be perfectly
88-
// reasonable code like this:
89-
//
90-
// ```
91-
// fn foo<'a>(p: &Data<'a>) {
92-
// bar(|q: &mut Parser| q.read_addr())
93-
// }
94-
// fn bar(p: Box<FnMut(&mut Parser)+'static>) {
95-
// }
96-
// ```
97-
//
98-
// Note that `p` (and `'a`) are not used in the
99-
// closure at all, but to meet the requirement that
100-
// the closure type `C: 'static` (so it can be coerced
101-
// to the object type), we get the requirement that
102-
// `'a: 'static` since `'a` appears in the closure
103-
// type `C`.
104-
//
105-
// A smarter fix might "prune" unused `func_substs` --
106-
// this would avoid breaking simple examples like
107-
// this, but would still break others (which might
108-
// indeed be invalid, depending on your POV). Pruning
109-
// would be a subtle process, since we have to see
110-
// what func/type parameters are used and unused,
111-
// taking into consideration UFCS and so forth.
11276

11377
for upvar_ty in substs.upvar_tys(def_id, *self) {
11478
self.compute_components(upvar_ty, out);

src/librustc_borrowck/borrowck/README.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -781,8 +781,9 @@ the base path, it will still be considered freezable.
781781

782782

783783

784-
**FIXME #10520: Restrictions against mutating the base pointer.** When
785-
an `&mut` pointer is frozen or claimed, we currently pass along the
784+
**FIXME [RFC 1751](https://github.com/rust-lang/rfcs/issues/1751)
785+
Restrictions against mutating the base pointer.**
786+
When an `&mut` pointer is frozen or claimed, we currently pass along the
786787
restriction against MUTATE to the base pointer. I do not believe this
787788
restriction is needed. It dates from the days when we had a way to
788789
mutate that preserved the value being mutated (i.e., swap). Nowadays

src/librustc_borrowck/borrowck/check_loans.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ impl<'a, 'tcx> CheckLoanCtxt<'a, 'tcx> {
659659
debug!("check_if_path_is_moved(id={:?}, use_kind={:?}, lp={:?})",
660660
id, use_kind, lp);
661661

662-
// FIXME (22079): if you find yourself tempted to cut and paste
662+
// FIXME: if you find yourself tempted to cut and paste
663663
// the body below and then specializing the error reporting,
664664
// consider refactoring this instead!
665665

@@ -720,7 +720,7 @@ impl<'a, 'tcx> CheckLoanCtxt<'a, 'tcx> {
720720
// the path must be initialized to prevent a case of
721721
// partial reinitialization
722722
//
723-
// FIXME (22079): could refactor via hypothetical
723+
// FIXME: could refactor via hypothetical
724724
// generalized check_if_path_is_moved
725725
let loan_path = owned_ptr_base_path_rc(lp_base);
726726
self.move_data.each_move_of(id, &loan_path, |_, _| {

src/librustc_borrowck/borrowck/gather_loans/mod.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ impl<'a, 'tcx> GatherLoanCtxt<'a, 'tcx> {
406406
self.all_loans.push(loan);
407407

408408
// if loan_gen_scope != borrow_id {
409-
// FIXME(#6268) Nested method calls
409+
// FIXME(https://github.com/rust-lang/rfcs/issues/811) Nested method calls
410410
//
411411
// Typically, the scope of the loan includes the point at
412412
// which the loan is originated. This
@@ -417,9 +417,8 @@ impl<'a, 'tcx> GatherLoanCtxt<'a, 'tcx> {
417417
//let restr = restrictions::compute_restrictions(
418418
// self.bccx, borrow_span, cmt, RESTR_EMPTY);
419419
//let loan = {
420-
// let all_loans = &mut *self.all_loans; // FIXME(#5074)
421420
// Loan {
422-
// index: all_loans.len(),
421+
// index: self.all_loans.len(),
423422
// loan_path,
424423
// cmt,
425424
// mutbl: ConstMutability,

src/librustc_trans/llvm_util.rs

+3
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ unsafe fn configure_llvm(sess: &Session) {
7373

7474
const ARM_WHITELIST: &'static [&'static str] = &["neon\0", "vfp2\0", "vfp3\0", "vfp4\0"];
7575

76+
const AARCH64_WHITELIST: &'static [&'static str] = &["neon\0"];
77+
7678
const X86_WHITELIST: &'static [&'static str] = &["avx\0", "avx2\0", "bmi\0", "bmi2\0", "sse\0",
7779
"sse2\0", "sse3\0", "sse4.1\0", "sse4.2\0",
7880
"ssse3\0", "tbm\0", "lzcnt\0", "popcnt\0",
@@ -90,6 +92,7 @@ pub fn target_features(sess: &Session) -> Vec<Symbol> {
9092

9193
let whitelist = match &*sess.target.target.arch {
9294
"arm" => ARM_WHITELIST,
95+
"aarch64" => AARCH64_WHITELIST,
9396
"x86" | "x86_64" => X86_WHITELIST,
9497
"hexagon" => HEXAGON_WHITELIST,
9598
"powerpc" | "powerpc64" => POWERPC_WHITELIST,

src/librustc_typeck/check/regionck.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -815,7 +815,8 @@ impl<'a, 'gcx, 'tcx> Visitor<'gcx> for RegionCtxt<'a, 'gcx, 'tcx> {
815815
// the type of the node expr.id here *before applying
816816
// adjustments*.
817817
//
818-
// FIXME(#6268) nested method calls requires that this rule change
818+
// FIXME(https://github.com/rust-lang/rfcs/issues/811)
819+
// nested method calls requires that this rule change
819820
let ty0 = self.resolve_node_type(expr.hir_id);
820821
self.type_must_outlive(infer::AddrOf(expr.span), ty0, expr_region);
821822
intravisit::walk_expr(self, expr);

src/libstd/primitive_docs.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@ mod prim_pointer { }
284284
/// Arrays of sizes from 0 to 32 (inclusive) implement the following traits if
285285
/// the element type allows it:
286286
///
287-
/// - [`Clone`][clone] (only if `T: `[`Copy`][copy])
288287
/// - [`Debug`][debug]
289288
/// - [`IntoIterator`][intoiterator] (implemented for `&[T; N]` and `&mut [T; N]`)
290289
/// - [`PartialEq`][partialeq], [`PartialOrd`][partialord], [`Eq`][eq], [`Ord`][ord]
@@ -299,8 +298,10 @@ mod prim_pointer { }
299298
/// entirely different types. As a stopgap, trait implementations are
300299
/// statically generated up to size 32.
301300
///
302-
/// Arrays of *any* size are [`Copy`][copy] if the element type is [`Copy`][copy]. This
303-
/// works because the [`Copy`][copy] trait is specially known to the compiler.
301+
/// Arrays of *any* size are [`Copy`][copy] if the element type is [`Copy`][copy]
302+
/// and [`Clone`][clone] if the element type is [`Clone`][clone]. This works
303+
/// because [`Copy`][copy] and [`Clone`][clone] traits are specially known
304+
/// to the compiler.
304305
///
305306
/// Arrays coerce to [slices (`[T]`)][slice], so a slice method may be called on
306307
/// an array. Indeed, this provides most of the API for working with arrays.

src/libstd/process.rs

+18
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,12 @@ impl Command {
552552

553553
/// Configuration for the child process's standard input (stdin) handle.
554554
///
555+
/// Defaults to [`inherit`] when used with `spawn` or `status`, and
556+
/// defaults to [`piped`] when used with `output`.
557+
///
558+
/// [`inherit`]: struct.Stdio.html#method.inherit
559+
/// [`piped`]: struct.Stdio.html#method.piped
560+
///
555561
/// # Examples
556562
///
557563
/// Basic usage:
@@ -572,6 +578,12 @@ impl Command {
572578

573579
/// Configuration for the child process's standard output (stdout) handle.
574580
///
581+
/// Defaults to [`inherit`] when used with `spawn` or `status`, and
582+
/// defaults to [`piped`] when used with `output`.
583+
///
584+
/// [`inherit`]: struct.Stdio.html#method.inherit
585+
/// [`piped`]: struct.Stdio.html#method.piped
586+
///
575587
/// # Examples
576588
///
577589
/// Basic usage:
@@ -592,6 +604,12 @@ impl Command {
592604

593605
/// Configuration for the child process's standard error (stderr) handle.
594606
///
607+
/// Defaults to [`inherit`] when used with `spawn` or `status`, and
608+
/// defaults to [`piped`] when used with `output`.
609+
///
610+
/// [`inherit`]: struct.Stdio.html#method.inherit
611+
/// [`piped`]: struct.Stdio.html#method.piped
612+
///
595613
/// # Examples
596614
///
597615
/// Basic usage:

0 commit comments

Comments
 (0)