Auto merge of #99112 - matthiaskrgr:rollup-uv2zk4d, r=matthiaskrgr
Rollup of 5 pull requests Successful merges: - #99045 (improve print styles) - #99086 (Fix display of search result crate filter dropdown) - #99100 (Fix binary name in help message for test binaries) - #99103 (Avoid some `&str` to `String` conversions) - #99109 (fill new tracking issue for `feature(strict_provenance_atomic_ptr)`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
268be96d6d
@ -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(),
|
||||
_ => "",
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -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) => {
|
||||
|
@ -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
|
||||
|
@ -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: {:?}",
|
||||
|
@ -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,
|
||||
|
@ -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");
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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(
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
@ -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;
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
}
|
||||
@ -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)
|
||||
}
|
||||
@ -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.
|
||||
@ -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.
|
||||
@ -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.
|
||||
@ -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.
|
||||
@ -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.
|
||||
|
@ -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,
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
@ -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;
|
||||
@ -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) {
|
||||
|
@ -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"})
|
||||
|
Loading…
x
Reference in New Issue
Block a user