Skip to content

Rollup of 5 pull requests #99112

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Jul 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions compiler/rustc_borrowck/src/diagnostics/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -597,16 +597,16 @@ impl UseSpans<'_> {
}

/// Describe the span associated with a use of a place.
pub(super) fn describe(&self) -> String {
pub(super) fn describe(&self) -> &str {
match *self {
UseSpans::ClosureUse { generator_kind, .. } => {
if generator_kind.is_some() {
" in generator".to_string()
" in generator"
} else {
" in closure".to_string()
" in closure"
}
}
_ => String::new(),
_ => "",
}
}

Expand Down
8 changes: 3 additions & 5 deletions compiler/rustc_middle/src/mir/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1824,12 +1824,10 @@ impl BorrowKind {
}
}

pub fn describe_mutability(&self) -> String {
pub fn describe_mutability(&self) -> &str {
match *self {
BorrowKind::Shared | BorrowKind::Shallow | BorrowKind::Unique => {
"immutable".to_string()
}
BorrowKind::Mut { .. } => "mutable".to_string(),
BorrowKind::Shared | BorrowKind::Shallow | BorrowKind::Unique => "immutable",
BorrowKind::Mut { .. } => "mutable",
}
}
}
Expand Down
4 changes: 1 addition & 3 deletions compiler/rustc_mir_transform/src/check_packed_ref.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,11 @@ fn unsafe_derive_on_repr_packed(tcx: TyCtxt<'_>, def_id: LocalDefId) {
let message = if tcx.generics_of(def_id).own_requires_monomorphization() {
"`#[derive]` can't be used on a `#[repr(packed)]` struct with \
type or const parameters (error E0133)"
.to_string()
} else {
"`#[derive]` can't be used on a `#[repr(packed)]` struct that \
does not derive Copy (error E0133)"
.to_string()
};
lint.build(&message).emit();
lint.build(message).emit();
});
}

Expand Down
5 changes: 1 addition & 4 deletions compiler/rustc_resolve/src/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -943,10 +943,7 @@ impl<'a> Resolver<'a> {
"generic parameters with a default cannot use \
forward declared identifiers"
);
err.span_label(
span,
"defaulted generic parameters cannot be forward declared".to_string(),
);
err.span_label(span, "defaulted generic parameters cannot be forward declared");
err
}
ResolutionError::ParamInTyOfConstParam(name) => {
Expand Down
6 changes: 2 additions & 4 deletions compiler/rustc_resolve/src/late/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -349,10 +349,8 @@ impl<'a: 'ast, 'ast> LateResolutionVisitor<'a, '_, 'ast> {

err.code(rustc_errors::error_code!(E0424));
err.span_label(span, match source {
PathSource::Pat => "`self` value is a keyword and may not be bound to variables or shadowed"
.to_string(),
_ => "`self` value is a keyword only available in methods with a `self` parameter"
.to_string(),
PathSource::Pat => "`self` value is a keyword and may not be bound to variables or shadowed",
_ => "`self` value is a keyword only available in methods with a `self` parameter",
});
if let Some((fn_kind, span)) = &self.diagnostic_metadata.current_function {
// The current function has a `self' parameter, but we were unable to resolve
Expand Down
3 changes: 1 addition & 2 deletions compiler/rustc_span/src/hygiene.rs
Original file line number Diff line number Diff line change
Expand Up @@ -629,8 +629,7 @@ pub fn debug_hygiene_data(verbose: bool) -> String {
if verbose {
format!("{:#?}", data)
} else {
let mut s = String::from("");
s.push_str("Expansions:");
let mut s = String::from("Expansions:");
let mut debug_expn_data = |(id, expn_data): (&ExpnId, &ExpnData)| {
s.push_str(&format!(
"\n{:?}: parent: {:?}, call_site_ctxt: {:?}, def_site_ctxt: {:?}, kind: {:?}",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ fn report_conflicting_impls(
let mut err = err.build(&msg);
match tcx.span_of_impl(overlap.with_impl) {
Ok(span) => {
err.span_label(span, "first implementation here".to_string());
err.span_label(span, "first implementation here");

err.span_label(
impl_span,
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_typeck/src/check/_match.rs
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
} else if let ExprKind::Block(block, _) = &then_expr.kind
&& let Some(expr) = &block.expr
{
err.span_label(expr.span, "found here".to_string());
err.span_label(expr.span, "found here");
}
err.note("`if` expressions without `else` evaluate to `()`");
err.help("consider adding an `else` block that evaluates to the expected type");
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_typeck/src/check/demand.rs
Original file line number Diff line number Diff line change
Expand Up @@ -317,9 +317,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
.tcx
.is_diagnostic_item(sym::Result, expected_adt.did())
{
vec!["Ok(())".to_string()]
vec!["Ok(())"]
} else if self.tcx.is_diagnostic_item(sym::Option, expected_adt.did()) {
vec!["None".to_string(), "Some(())".to_string()]
vec!["None", "Some(())"]
} else {
return;
};
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_typeck/src/check/op.rs
Original file line number Diff line number Diff line change
Expand Up @@ -565,9 +565,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
.is_ok()
{
let (variable_snippet, applicability) = if !fn_sig.inputs().is_empty() {
("( /* arguments */ )".to_string(), Applicability::HasPlaceholders)
("( /* arguments */ )", Applicability::HasPlaceholders)
} else {
("()".to_string(), Applicability::MaybeIncorrect)
("()", Applicability::MaybeIncorrect)
};

err.span_suggestion_verbose(
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_typeck/src/hir_wf_check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ fn diagnostic_hir_wf_check<'tcx>(

let errors = fulfill.select_all_or_error(&infcx);
if !errors.is_empty() {
tracing::debug!("Wf-check got errors for {:?}: {:?}", ty, errors);
debug!("Wf-check got errors for {:?}: {:?}", ty, errors);
for error in errors {
if error.obligation.predicate == self.predicate {
// Save the cause from the greatest depth - this corresponds
Expand Down
5 changes: 2 additions & 3 deletions compiler/rustc_typeck/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ fn check_main_fn_ty(tcx: TyCtxt<'_>, main_def_id: DefId) {
let mut diag =
struct_span_err!(tcx.sess, generics_param_span.unwrap_or(main_span), E0131, "{}", msg);
if let Some(generics_param_span) = generics_param_span {
let label = "`main` cannot have generic parameters".to_string();
let label = "`main` cannot have generic parameters";
diag.span_label(generics_param_span, label);
}
diag.emit();
Expand Down Expand Up @@ -307,8 +307,7 @@ fn check_main_fn_ty(tcx: TyCtxt<'_>, main_def_id: DefId) {
let return_ty_span = main_fn_return_type_span(tcx, main_def_id).unwrap_or(main_span);
if !return_ty.bound_vars().is_empty() {
let msg = "`main` function return type is not allowed to have generic \
parameters"
.to_owned();
parameters";
struct_span_err!(tcx.sess, return_ty_span, E0131, "{}", msg).emit();
error = true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,8 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
}
}

fn kind(&self) -> String {
if self.missing_lifetimes() { "lifetime".to_string() } else { "generic".to_string() }
fn kind(&self) -> &str {
if self.missing_lifetimes() { "lifetime" } else { "generic" }
}

fn num_provided_args(&self) -> usize {
Expand Down
14 changes: 7 additions & 7 deletions library/core/src/sync/atomic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1487,7 +1487,7 @@ impl<T> AtomicPtr<T> {
/// ```
#[inline]
#[cfg(target_has_atomic = "ptr")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "95228")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "99108")]
pub fn fetch_ptr_add(&self, val: usize, order: Ordering) -> *mut T {
self.fetch_byte_add(val.wrapping_mul(core::mem::size_of::<T>()), order)
}
Expand Down Expand Up @@ -1531,7 +1531,7 @@ impl<T> AtomicPtr<T> {
/// ```
#[inline]
#[cfg(target_has_atomic = "ptr")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "95228")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "99108")]
pub fn fetch_ptr_sub(&self, val: usize, order: Ordering) -> *mut T {
self.fetch_byte_sub(val.wrapping_mul(core::mem::size_of::<T>()), order)
}
Expand Down Expand Up @@ -1566,7 +1566,7 @@ impl<T> AtomicPtr<T> {
/// ```
#[inline]
#[cfg(target_has_atomic = "ptr")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "95228")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "99108")]
pub fn fetch_byte_add(&self, val: usize, order: Ordering) -> *mut T {
#[cfg(not(bootstrap))]
// SAFETY: data races are prevented by atomic intrinsics.
Expand Down Expand Up @@ -1609,7 +1609,7 @@ impl<T> AtomicPtr<T> {
/// ```
#[inline]
#[cfg(target_has_atomic = "ptr")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "95228")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "99108")]
pub fn fetch_byte_sub(&self, val: usize, order: Ordering) -> *mut T {
#[cfg(not(bootstrap))]
// SAFETY: data races are prevented by atomic intrinsics.
Expand Down Expand Up @@ -1667,7 +1667,7 @@ impl<T> AtomicPtr<T> {
/// ```
#[inline]
#[cfg(target_has_atomic = "ptr")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "95228")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "99108")]
pub fn fetch_or(&self, val: usize, order: Ordering) -> *mut T {
#[cfg(not(bootstrap))]
// SAFETY: data races are prevented by atomic intrinsics.
Expand Down Expand Up @@ -1724,7 +1724,7 @@ impl<T> AtomicPtr<T> {
/// ```
#[inline]
#[cfg(target_has_atomic = "ptr")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "95228")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "99108")]
pub fn fetch_and(&self, val: usize, order: Ordering) -> *mut T {
#[cfg(not(bootstrap))]
// SAFETY: data races are prevented by atomic intrinsics.
Expand Down Expand Up @@ -1779,7 +1779,7 @@ impl<T> AtomicPtr<T> {
/// ```
#[inline]
#[cfg(target_has_atomic = "ptr")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "95228")]
#[unstable(feature = "strict_provenance_atomic_ptr", issue = "99108")]
pub fn fetch_xor(&self, val: usize, order: Ordering) -> *mut T {
#[cfg(not(bootstrap))]
// SAFETY: data races are prevented by atomic intrinsics.
Expand Down
3 changes: 2 additions & 1 deletion library/test/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ Test Attributes:
pub fn parse_opts(args: &[String]) -> Option<OptRes> {
// Parse matches.
let opts = optgroups();
let binary = args.get(0).map(|c| &**c).unwrap_or("...");
let args = args.get(1..).unwrap_or(args);
let matches = match opts.parse(args) {
Ok(m) => m,
Expand All @@ -205,7 +206,7 @@ pub fn parse_opts(args: &[String]) -> Option<OptRes> {
// Check if help was requested.
if matches.opt_present("h") {
// Show help and do nothing more.
usage(&args[0], &opts);
usage(binary, &opts);
return None;
}

Expand Down
15 changes: 13 additions & 2 deletions src/librustdoc/html/static/css/rustdoc.css
Original file line number Diff line number Diff line change
Expand Up @@ -924,7 +924,6 @@ table,
#crate-search {
min-width: 115px;
margin-top: 5px;
margin-left: 0.25em;
padding-left: 0.3125em;
padding-right: 23px;
border: 1px solid;
Expand All @@ -941,6 +940,8 @@ table,
background-size: 20px;
background-position: calc(100% - 1px) 56%;
background-image: /* AUTOREPLACE: */url("down-arrow.svg");
max-width: 100%;
text-overflow: ellipsis;
}
.search-container {
margin-top: 4px;
Expand Down Expand Up @@ -2056,9 +2057,19 @@ in storage.js plus the media query with (min-width: 701px)
}

@media print {
nav.sub, .content .out-of-band {
nav.sidebar, nav.sub, .content .out-of-band, a.srclink, #copy-path,
details.rustdoc-toggle[open] > summary::before, details.rustdoc-toggle > summary::before,
details.rustdoc-toggle.top-doc > summary {
display: none;
}

.docblock {
margin-left: 0;
}

main {
padding: 10px;
}
}

@media (max-width: 464px) {
Expand Down
28 changes: 28 additions & 0 deletions src/test/rustdoc-gui/search-result-display.goml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,31 @@ size: (600, 100)
// As counter-intuitive as it may seem, in this width, the width is "100%", which is why
// when computed it's larger.
assert-css: (".search-results div.desc", {"width": "570px"})

// Check that the crate filter `<select>` is correctly handled when it goes to next line.
// To do so we need to update the length of one of its `<option>`.
size: (900, 900)

// First we check the current width and position.
assert-css: ("#crate-search", {"width": "222px"})
compare-elements-position-near: (
"#crate-search",
"#search-settings .search-results-title",
{"y": 5},
)

// Then we update the text of one of the `<option>`.
text: (
"#crate-search option",
"sdjfaksdjfaksjdbfkadsbfkjsadbfkdsbkfbsadkjfbkdsabfkadsfkjdsafa",
)

// Then we compare again.
assert-css: ("#crate-search", {"width": "640px"})
compare-elements-position-near-false: (
"#crate-search",
"#search-settings .search-results-title",
{"y": 5},
)
// And we check that the `<select>` isn't bigger than its container.
assert-css: ("#search", {"width": "640px"})