Add a way to get shorter spans until char for pointing at defs
```rust
error[E0072]: recursive type `X` has infinite size
--> file.rs:10:1
|
10 | struct X {
| ^^^^^^^^ recursive type has infinite size
|
= help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `X` representable
```
vs
```rust
error[E0072]: recursive type `X` has infinite size
--> file.rs:10:1
|
10 | struct X {
| _^ starting here...
11 | | x: X,
12 | | }
| |_^ ...ending here: recursive type has infinite size
|
= help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `X` representable
```
This commit is contained in:
parent
d616f47cd0
commit
439ff69d90
7 changed files with 80 additions and 18 deletions
|
|
@ -2,7 +2,7 @@ error[E0038]: the trait `issue_3907::Foo` cannot be made into an object
|
|||
--> $DIR/issue-3907-2.rs:20:1
|
||||
|
|
||||
20 | fn bar(_x: Foo) {}
|
||||
| ^^^^^^^^^^^^^^^^^^ the trait `issue_3907::Foo` cannot be made into an object
|
||||
| ^^^^^^^^^^^^^^^ the trait `issue_3907::Foo` cannot be made into an object
|
||||
|
|
||||
= note: method `bar` has no receiver
|
||||
|
||||
|
|
|
|||
17
src/test/ui/span/E0072.rs
Normal file
17
src/test/ui/span/E0072.rs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
struct ListNode {
|
||||
head: u8,
|
||||
tail: Option<ListNode>,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
}
|
||||
10
src/test/ui/span/E0072.stderr
Normal file
10
src/test/ui/span/E0072.stderr
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
error[E0072]: recursive type `ListNode` has infinite size
|
||||
--> $DIR/E0072.rs:11:1
|
||||
|
|
||||
11 | struct ListNode {
|
||||
| ^^^^^^^^^^^^^^^ recursive type has infinite size
|
||||
|
|
||||
= help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `ListNode` representable
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
20
src/test/ui/span/multiline-span-E0072.rs
Normal file
20
src/test/ui/span/multiline-span-E0072.rs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// It should just use the entire body instead of pointing at the next two lines
|
||||
struct
|
||||
ListNode
|
||||
{
|
||||
head: u8,
|
||||
tail: Option<ListNode>,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
}
|
||||
16
src/test/ui/span/multiline-span-E0072.stderr
Normal file
16
src/test/ui/span/multiline-span-E0072.stderr
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
error[E0072]: recursive type `ListNode` has infinite size
|
||||
--> $DIR/multiline-span-E0072.rs:12:1
|
||||
|
|
||||
12 | struct
|
||||
| _^ starting here...
|
||||
13 | | ListNode
|
||||
14 | | {
|
||||
15 | | head: u8,
|
||||
16 | | tail: Option<ListNode>,
|
||||
17 | | }
|
||||
| |_^ ...ending here: recursive type has infinite size
|
||||
|
|
||||
= help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `ListNode` representable
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue