parent
b97dc20784
commit
ac2afa0334
3 changed files with 138 additions and 0 deletions
|
@ -1657,6 +1657,31 @@ impl EmitterWriter {
|
||||||
let line_start = sm.lookup_char_pos(parts[0].span.lo()).line;
|
let line_start = sm.lookup_char_pos(parts[0].span.lo()).line;
|
||||||
draw_col_separator_no_space(&mut buffer, 1, max_line_num_len + 1);
|
draw_col_separator_no_space(&mut buffer, 1, max_line_num_len + 1);
|
||||||
let mut lines = complete.lines();
|
let mut lines = complete.lines();
|
||||||
|
if lines.clone().next().is_none() {
|
||||||
|
// Account for a suggestion to completely remove a line(s) with whitespace (#94192).
|
||||||
|
let line_end = sm.lookup_char_pos(parts[0].span.hi()).line;
|
||||||
|
for line in line_start..=line_end {
|
||||||
|
buffer.puts(
|
||||||
|
row_num - 1 + line - line_start,
|
||||||
|
0,
|
||||||
|
&self.maybe_anonymized(line),
|
||||||
|
Style::LineNumber,
|
||||||
|
);
|
||||||
|
buffer.puts(
|
||||||
|
row_num - 1 + line - line_start,
|
||||||
|
max_line_num_len + 1,
|
||||||
|
"- ",
|
||||||
|
Style::Removal,
|
||||||
|
);
|
||||||
|
buffer.puts(
|
||||||
|
row_num - 1 + line - line_start,
|
||||||
|
max_line_num_len + 3,
|
||||||
|
&normalize_whitespace(&*file_lines.file.get_line(line - 1).unwrap()),
|
||||||
|
Style::Removal,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
row_num += line_end - line_start;
|
||||||
|
}
|
||||||
for (line_pos, (line, highlight_parts)) in
|
for (line_pos, (line, highlight_parts)) in
|
||||||
lines.by_ref().zip(highlights).take(MAX_SUGGESTION_HIGHLIGHT_LINES).enumerate()
|
lines.by_ref().zip(highlights).take(MAX_SUGGESTION_HIGHLIGHT_LINES).enumerate()
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
struct Wrapper<T>(T);
|
||||||
|
|
||||||
|
fn foo<T>(foo: Wrapper<T>)
|
||||||
|
//~^ ERROR the size for values of type `T` cannot be known at compilation time
|
||||||
|
where
|
||||||
|
T
|
||||||
|
:
|
||||||
|
?
|
||||||
|
Sized
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
fn bar<T>(foo: Wrapper<T>)
|
||||||
|
//~^ ERROR the size for values of type `T` cannot be known at compilation time
|
||||||
|
where T: ?Sized
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
fn qux<T>(foo: Wrapper<T>)
|
||||||
|
//~^ ERROR the size for values of type `T` cannot be known at compilation time
|
||||||
|
where
|
||||||
|
T: ?Sized
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn main() {}
|
|
@ -0,0 +1,83 @@
|
||||||
|
error[E0277]: the size for values of type `T` cannot be known at compilation time
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:3:16
|
||||||
|
|
|
||||||
|
LL | fn foo<T>(foo: Wrapper<T>)
|
||||||
|
| - ^^^^^^^^^^ doesn't have a size known at compile-time
|
||||||
|
| |
|
||||||
|
| this type parameter needs to be `std::marker::Sized`
|
||||||
|
|
|
||||||
|
note: required by a bound in `Wrapper`
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16
|
||||||
|
|
|
||||||
|
LL | struct Wrapper<T>(T);
|
||||||
|
| ^ required by this bound in `Wrapper`
|
||||||
|
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>`
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16
|
||||||
|
|
|
||||||
|
LL | struct Wrapper<T>(T);
|
||||||
|
| ^ - ...if indirection were used here: `Box<T>`
|
||||||
|
| |
|
||||||
|
| this could be changed to `T: ?Sized`...
|
||||||
|
help: consider removing the `?Sized` bound to make the type parameter `Sized`
|
||||||
|
|
|
||||||
|
LL - where
|
||||||
|
LL - T
|
||||||
|
LL - :
|
||||||
|
LL - ?
|
||||||
|
LL - Sized
|
||||||
|
|
|
||||||
|
|
||||||
|
error[E0277]: the size for values of type `T` cannot be known at compilation time
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:14:16
|
||||||
|
|
|
||||||
|
LL | fn bar<T>(foo: Wrapper<T>)
|
||||||
|
| - ^^^^^^^^^^ doesn't have a size known at compile-time
|
||||||
|
| |
|
||||||
|
| this type parameter needs to be `std::marker::Sized`
|
||||||
|
|
|
||||||
|
note: required by a bound in `Wrapper`
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16
|
||||||
|
|
|
||||||
|
LL | struct Wrapper<T>(T);
|
||||||
|
| ^ required by this bound in `Wrapper`
|
||||||
|
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>`
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16
|
||||||
|
|
|
||||||
|
LL | struct Wrapper<T>(T);
|
||||||
|
| ^ - ...if indirection were used here: `Box<T>`
|
||||||
|
| |
|
||||||
|
| this could be changed to `T: ?Sized`...
|
||||||
|
help: consider removing the `?Sized` bound to make the type parameter `Sized`
|
||||||
|
|
|
||||||
|
LL - where T: ?Sized
|
||||||
|
|
|
||||||
|
|
||||||
|
error[E0277]: the size for values of type `T` cannot be known at compilation time
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:21:16
|
||||||
|
|
|
||||||
|
LL | fn qux<T>(foo: Wrapper<T>)
|
||||||
|
| - ^^^^^^^^^^ doesn't have a size known at compile-time
|
||||||
|
| |
|
||||||
|
| this type parameter needs to be `std::marker::Sized`
|
||||||
|
|
|
||||||
|
note: required by a bound in `Wrapper`
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16
|
||||||
|
|
|
||||||
|
LL | struct Wrapper<T>(T);
|
||||||
|
| ^ required by this bound in `Wrapper`
|
||||||
|
help: you could relax the implicit `Sized` bound on `T` if it were used through indirection like `&T` or `Box<T>`
|
||||||
|
--> $DIR/removal-of-multiline-trait-bound-in-where-clause.rs:1:16
|
||||||
|
|
|
||||||
|
LL | struct Wrapper<T>(T);
|
||||||
|
| ^ - ...if indirection were used here: `Box<T>`
|
||||||
|
| |
|
||||||
|
| this could be changed to `T: ?Sized`...
|
||||||
|
help: consider removing the `?Sized` bound to make the type parameter `Sized`
|
||||||
|
|
|
||||||
|
LL - where
|
||||||
|
LL - T: ?Sized
|
||||||
|
|
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0277`.
|
Loading…
Add table
Add a link
Reference in a new issue