Auto merge of #121142 - GuillaumeGomez:rollup-5qmksjw, r=GuillaumeGomez
Rollup of 8 pull requests Successful merges: - #120449 (Document requirements for unsized {Rc,Arc}::from_raw) - #120505 (Fix BTreeMap's Cursor::remove_{next,prev}) - #120672 (std::thread update freebsd stack guard handling.) - #121088 (Implicitly enable evex512 if avx512 is enabled) - #121104 (Ignore unsized types when trying to determine the size of the original type) - #121107 (Fix msg for verbose suggestions with confusable capitalization) - #121113 (Continue compilation even if inherent impl checks fail) - #121120 (Add `ErrorGuaranteed` to `ast::LitKind::Err`, `token::LitKind::Err`.) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
cbddf31863
58 changed files with 630 additions and 277 deletions
|
@ -1743,9 +1743,17 @@ impl HumanEmitter {
|
|||
buffer.append(0, level.to_str(), Style::Level(*level));
|
||||
buffer.append(0, ": ", Style::HeaderMsg);
|
||||
|
||||
let mut msg = vec![(suggestion.msg.to_owned(), Style::NoStyle)];
|
||||
if suggestions
|
||||
.iter()
|
||||
.take(MAX_SUGGESTIONS)
|
||||
.any(|(_, _, _, only_capitalization)| *only_capitalization)
|
||||
{
|
||||
msg.push((" (notice the capitalization difference)".into(), Style::NoStyle));
|
||||
}
|
||||
self.msgs_to_buffer(
|
||||
&mut buffer,
|
||||
&[(suggestion.msg.to_owned(), Style::NoStyle)],
|
||||
&msg,
|
||||
args,
|
||||
max_line_num_len,
|
||||
"suggestion",
|
||||
|
@ -1754,12 +1762,8 @@ impl HumanEmitter {
|
|||
|
||||
let mut row_num = 2;
|
||||
draw_col_separator_no_space(&mut buffer, 1, max_line_num_len + 1);
|
||||
let mut notice_capitalization = false;
|
||||
for (complete, parts, highlights, only_capitalization) in
|
||||
suggestions.iter().take(MAX_SUGGESTIONS)
|
||||
{
|
||||
for (complete, parts, highlights, _) in suggestions.iter().take(MAX_SUGGESTIONS) {
|
||||
debug!(?complete, ?parts, ?highlights);
|
||||
notice_capitalization |= only_capitalization;
|
||||
|
||||
let has_deletion = parts.iter().any(|p| p.is_deletion(sm));
|
||||
let is_multiline = complete.lines().count() > 1;
|
||||
|
@ -2058,9 +2062,6 @@ impl HumanEmitter {
|
|||
let others = suggestions.len() - MAX_SUGGESTIONS;
|
||||
let msg = format!("and {} other candidate{}", others, pluralize!(others));
|
||||
buffer.puts(row_num, max_line_num_len + 3, &msg, Style::NoStyle);
|
||||
} else if notice_capitalization {
|
||||
let msg = "notice the capitalization difference";
|
||||
buffer.puts(row_num, max_line_num_len + 3, msg, Style::NoStyle);
|
||||
}
|
||||
emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message)?;
|
||||
Ok(())
|
||||
|
|
|
@ -320,7 +320,9 @@ impl CodeSuggestion {
|
|||
// We need to keep track of the difference between the existing code and the added
|
||||
// or deleted code in order to point at the correct column *after* substitution.
|
||||
let mut acc = 0;
|
||||
let mut only_capitalization = false;
|
||||
for part in &substitution.parts {
|
||||
only_capitalization |= is_case_difference(sm, &part.snippet, part.span);
|
||||
let cur_lo = sm.lookup_char_pos(part.span.lo());
|
||||
if prev_hi.line == cur_lo.line {
|
||||
let mut count =
|
||||
|
@ -393,7 +395,6 @@ impl CodeSuggestion {
|
|||
}
|
||||
}
|
||||
highlights.push(std::mem::take(&mut line_highlight));
|
||||
let only_capitalization = is_case_difference(sm, &buf, bounding_span);
|
||||
// if the replacement already ends with a newline, don't print the next line
|
||||
if !buf.ends_with('\n') {
|
||||
push_trailing(&mut buf, prev_line.as_ref(), &prev_hi, None);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue