Skip to content

Commit

Permalink
Auto merge of rust-lang#78106 - GuillaumeGomez:rollup-06vwk7p, r=Guil…
Browse files Browse the repository at this point in the history
…laumeGomez

Rollup of 4 pull requests

Successful merges:

 - rust-lang#77877 (Use `try{}` in `try_fold` to decouple iterators in the library from `Try` details)
 - rust-lang#78089 (Fix issue with specifying generic arguments for primitive types)
 - rust-lang#78099 (Add missing punctuation)
 - rust-lang#78103 (Add link to rustdoc book in rustdoc help popup)

Failed merges:

r? `@ghost`
  • Loading branch information
bors committed Oct 19, 2020
2 parents f90e617 + cbcf8d4 commit a85e949
Show file tree
Hide file tree
Showing 18 changed files with 90 additions and 47 deletions.
16 changes: 10 additions & 6 deletions compiler/rustc_typeck/src/collect/type_of.rs
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,16 @@ pub(super) fn opt_const_param_of(tcx: TyCtxt<'_>, def_id: LocalDefId) -> Option<
tcx.sess.delay_span_bug(tcx.def_span(def_id), "anon const with Res::Err");
return None;
}
_ => span_bug!(
DUMMY_SP,
"unexpected anon const res {:?} in path: {:?}",
res,
path,
),
_ => {
// If the user tries to specify generics on a type that does not take them,
// e.g. `usize<T>`, we may hit this branch, in which case we treat it as if
// no arguments have been passed. An error should already have been emitted.
tcx.sess.delay_span_bug(
tcx.def_span(def_id),
&format!("unexpected anon const res {:?} in path: {:?}", res, path),
);
return None;
}
};

generics
Expand Down
4 changes: 2 additions & 2 deletions library/core/src/iter/adapters/chain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ where
acc = b.try_fold(acc, f)?;
// we don't fuse the second iterator
}
Try::from_ok(acc)
try { acc }
}

fn fold<Acc, F>(self, mut acc: Acc, mut f: F) -> Acc
Expand Down Expand Up @@ -292,7 +292,7 @@ where
acc = a.try_rfold(acc, f)?;
// we don't fuse the second iterator
}
Try::from_ok(acc)
try { acc }
}

fn rfold<Acc, F>(self, mut acc: Acc, mut f: F) -> Acc
Expand Down
4 changes: 2 additions & 2 deletions library/core/src/iter/adapters/flatten.rs
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ where
}
self.backiter = None;

Try::from_ok(init)
try { init }
}

#[inline]
Expand Down Expand Up @@ -397,7 +397,7 @@ where
}
self.frontiter = None;

Try::from_ok(init)
try { init }
}

#[inline]
Expand Down
4 changes: 2 additions & 2 deletions library/core/src/iter/adapters/fuse.rs
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ where
acc = iter.try_fold(acc, fold)?;
self.iter = None;
}
Try::from_ok(acc)
try { acc }
}

#[inline]
Expand Down Expand Up @@ -353,7 +353,7 @@ where
acc = iter.try_rfold(acc, fold)?;
self.iter = None;
}
Try::from_ok(acc)
try { acc }
}

#[inline]
Expand Down
40 changes: 18 additions & 22 deletions library/core/src/iter/adapters/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,7 @@ where
})?;

if is_empty {
return Try::from_ok(acc);
return try { acc };
}

loop {
Expand Down Expand Up @@ -715,7 +715,7 @@ where
if self.first_take {
self.first_take = false;
match self.iter.next() {
None => return Try::from_ok(acc),
None => return try { acc },
Some(x) => acc = f(acc, x)?,
}
}
Expand Down Expand Up @@ -792,7 +792,7 @@ where
}

match self.next_back() {
None => Try::from_ok(init),
None => try { init },
Some(x) => {
let acc = f(init, x)?;
from_fn(nth_back(&mut self.iter, self.step)).try_fold(acc, f)
Expand Down Expand Up @@ -1075,7 +1075,7 @@ fn filter_try_fold<'a, T, Acc, R: Try<Ok = Acc>>(
predicate: &'a mut impl FnMut(&T) -> bool,
mut fold: impl FnMut(Acc, T) -> R + 'a,
) -> impl FnMut(Acc, T) -> R + 'a {
move |acc, item| if predicate(&item) { fold(acc, item) } else { R::from_ok(acc) }
move |acc, item| if predicate(&item) { fold(acc, item) } else { try { acc } }
}

#[stable(feature = "rust1", since = "1.0.0")]
Expand Down Expand Up @@ -1229,7 +1229,7 @@ fn filter_map_try_fold<'a, T, B, Acc, R: Try<Ok = Acc>>(
) -> impl FnMut(Acc, T) -> R + 'a {
move |acc, item| match f(item) {
Some(x) => fold(acc, x),
None => R::from_ok(acc),
None => try { acc },
}
}

Expand Down Expand Up @@ -1660,7 +1660,7 @@ impl<I: Iterator> Iterator for Peekable<I> {
R: Try<Ok = B>,
{
let acc = match self.peeked.take() {
Some(None) => return Try::from_ok(init),
Some(None) => return try { init },
Some(Some(v)) => f(init, v)?,
None => init,
};
Expand Down Expand Up @@ -1703,7 +1703,7 @@ where
R: Try<Ok = B>,
{
match self.peeked.take() {
Some(None) => Try::from_ok(init),
Some(None) => try { init },
Some(Some(v)) => match self.iter.try_rfold(init, &mut f).into_result() {
Ok(acc) => f(acc, v),
Err(e) => {
Expand Down Expand Up @@ -1938,7 +1938,7 @@ where
if !self.flag {
match self.next() {
Some(v) => init = fold(init, v)?,
None => return Try::from_ok(init),
None => return try { init },
}
}
self.iter.try_fold(init, fold)
Expand Down Expand Up @@ -2065,13 +2065,13 @@ where
ControlFlow::from_try(fold(acc, x))
} else {
*flag = true;
ControlFlow::Break(Try::from_ok(acc))
ControlFlow::Break(try { acc })
}
}
}

if self.flag {
Try::from_ok(init)
try { init }
} else {
let flag = &mut self.flag;
let p = &mut self.predicate;
Expand Down Expand Up @@ -2180,7 +2180,7 @@ where
let Self { iter, predicate } = self;
iter.try_fold(init, |acc, x| match predicate(x) {
Some(item) => ControlFlow::from_try(fold(acc, item)),
None => ControlFlow::Break(Try::from_ok(acc)),
None => ControlFlow::Break(try { acc }),
})
.into_try()
}
Expand Down Expand Up @@ -2316,7 +2316,7 @@ where
if n > 0 {
// nth(n) skips n+1
if self.iter.nth(n - 1).is_none() {
return Try::from_ok(init);
return try { init };
}
}
self.iter.try_fold(init, fold)
Expand Down Expand Up @@ -2381,11 +2381,7 @@ where
}

let n = self.len();
if n == 0 {
Try::from_ok(init)
} else {
self.iter.try_rfold(init, check(n, fold)).into_try()
}
if n == 0 { try { init } } else { self.iter.try_rfold(init, check(n, fold)).into_try() }
}

fn rfold<Acc, Fold>(mut self, init: Acc, fold: Fold) -> Acc
Expand Down Expand Up @@ -2509,7 +2505,7 @@ where
}

if self.n == 0 {
Try::from_ok(init)
try { init }
} else {
let n = &mut self.n;
self.iter.try_fold(init, check(n, fold)).into_try()
Expand Down Expand Up @@ -2587,11 +2583,11 @@ where
R: Try<Ok = Acc>,
{
if self.n == 0 {
Try::from_ok(init)
try { init }
} else {
let len = self.iter.len();
if len > self.n && self.iter.nth_back(len - self.n - 1).is_none() {
Try::from_ok(init)
try { init }
} else {
self.iter.try_rfold(init, fold)
}
Expand Down Expand Up @@ -2687,7 +2683,7 @@ where
mut fold: impl FnMut(Acc, B) -> R + 'a,
) -> impl FnMut(Acc, T) -> ControlFlow<Acc, R> + 'a {
move |acc, x| match f(state, x) {
None => ControlFlow::Break(Try::from_ok(acc)),
None => ControlFlow::Break(try { acc }),
Some(x) => ControlFlow::from_try(fold(acc, x)),
}
}
Expand Down Expand Up @@ -2951,7 +2947,7 @@ where
Ok(x) => ControlFlow::from_try(f(acc, x)),
Err(e) => {
*error = Err(e);
ControlFlow::Break(Try::from_ok(acc))
ControlFlow::Break(try { acc })
}
})
.into_try()
Expand Down
8 changes: 4 additions & 4 deletions library/core/src/iter/range.rs
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ impl<A: Step> Iterator for ops::RangeInclusive<A> {
R: Try<Ok = B>,
{
if self.is_empty() {
return Try::from_ok(init);
return try { init };
}

let mut accum = init;
Expand All @@ -731,7 +731,7 @@ impl<A: Step> Iterator for ops::RangeInclusive<A> {
accum = f(accum, self.start.clone())?;
}

Try::from_ok(accum)
try { accum }
}

#[inline]
Expand Down Expand Up @@ -818,7 +818,7 @@ impl<A: Step> DoubleEndedIterator for ops::RangeInclusive<A> {
R: Try<Ok = B>,
{
if self.is_empty() {
return Try::from_ok(init);
return try { init };
}

let mut accum = init;
Expand All @@ -836,7 +836,7 @@ impl<A: Step> DoubleEndedIterator for ops::RangeInclusive<A> {
accum = f(accum, self.start.clone())?;
}

Try::from_ok(accum)
try { accum }
}

#[inline]
Expand Down
2 changes: 1 addition & 1 deletion library/core/src/iter/traits/double_ended.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ pub trait DoubleEndedIterator: Iterator {
while let Some(x) = self.next_back() {
accum = f(accum, x)?;
}
Try::from_ok(accum)
try { accum }
}

/// An iterator method that reduces the iterator's elements to a single,
Expand Down
2 changes: 1 addition & 1 deletion library/core/src/iter/traits/iterator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1887,7 +1887,7 @@ pub trait Iterator {
while let Some(x) = self.next() {
accum = f(accum, x)?;
}
Try::from_ok(accum)
try { accum }
}

/// An iterator method that applies a fallible function to each item in the
Expand Down
1 change: 1 addition & 0 deletions library/core/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@
#![feature(str_split_as_str)]
#![feature(str_split_inclusive_as_str)]
#![feature(transparent_unions)]
#![feature(try_blocks)]
#![feature(unboxed_closures)]
#![feature(unsized_locals)]
#![cfg_attr(bootstrap, feature(untagged_unions))]
Expand Down
2 changes: 1 addition & 1 deletion library/std/src/process.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1184,7 +1184,7 @@ impl Stdio {
}

/// This stream will be ignored. This is the equivalent of attaching the
/// stream to `/dev/null`
/// stream to `/dev/null`.
///
/// # Examples
///
Expand Down
5 changes: 5 additions & 0 deletions src/librustdoc/html/static/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -2792,6 +2792,10 @@ function defocusSearchBar() {
addClass(popup, "hidden");
popup.id = "help";

var book_info = document.createElement("span");
book_info.innerHTML = "You can find more information in \
<a href=\"https://doc.rust-lang.org/rustdoc/\">the rustdoc book</a>.";

var container = document.createElement("div");
var shortcuts = [
["?", "Show this help dialog"],
Expand Down Expand Up @@ -2825,6 +2829,7 @@ function defocusSearchBar() {
addClass(div_infos, "infos");
div_infos.innerHTML = "<h2>Search Tricks</h2>" + infos;

container.appendChild(book_info);
container.appendChild(div_shortcuts);
container.appendChild(div_infos);

Expand Down
12 changes: 10 additions & 2 deletions src/librustdoc/html/static/rustdoc.css
Original file line number Diff line number Diff line change
Expand Up @@ -796,14 +796,22 @@ body.blur > :not(#help) {
clear: left;
display: block;
}
#help > div > span {
text-align: center;
display: block;
margin: 10px 0;
font-size: 18px;
border-bottom: 1px solid #ccc;
padding-bottom: 4px;
margin-bottom: 6px;
}
#help dd { margin: 5px 35px; }
#help .infos { padding-left: 0; }
#help h1, #help h2 { margin-top: 0; }
#help > div div {
width: 50%;
float: left;
padding: 20px;
padding-left: 17px;
padding: 0 20px 20px 17px;;
}

.stab {
Expand Down
7 changes: 6 additions & 1 deletion src/librustdoc/html/static/themes/ayu.css
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,8 @@ a {
}

.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),
.docblock-short a:not(.srclink):not(.test-arrow), .stability a {
.docblock-short a:not(.srclink):not(.test-arrow), .stability a,
#help a {
color: #39AFD7;
}

Expand Down Expand Up @@ -275,6 +276,10 @@ a {
border-radius: 4px;
}

#help > div > span {
border-bottom-color: #5c6773;
}

.since {
color: grey;
}
Expand Down
7 changes: 6 additions & 1 deletion src/librustdoc/html/static/themes/dark.css
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,8 @@ a {
}

.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),
.docblock-short a:not(.srclink):not(.test-arrow), .stability a {
.docblock-short a:not(.srclink):not(.test-arrow), .stability a,
#help a {
color: #D2991D;
}

Expand Down Expand Up @@ -231,6 +232,10 @@ a.test-arrow {
border-color: #bfbfbf;
}

#help > div > span {
border-bottom-color: #bfbfbf;
}

#help dt {
border-color: #bfbfbf;
background: rgba(0,0,0,0);
Expand Down
Loading

0 comments on commit a85e949

Please sign in to comment.