Reduce visual clutter of multiline start when possible

When a span starts on a line with nothing but whitespace to the left,
and there are no other annotations in that line, simplify the visual
representation of the span.

Go from:

```rust
error[E0072]: recursive type `A` has infinite size
 --> file2.rs:1:1
  |
1 |   struct A {
  |  _^ starting here...
2 | |     a: A,
3 | | }
  | |_^ ...ending here: recursive type has infinite size
  |
```

To:

```rust
error[E0072]: recursive type `A` has infinite size
 --> file2.rs:1:1
  |
1 | / struct A {
2 | |     a: A,
3 | | }
  | |_^ recursive type has infinite size
```

Remove `starting here...`/`...ending here` labels from all multiline
diagnostics.
This commit is contained in:
Esteban Küber
2017-04-14 16:38:10 -07:00
parent 968ae7babe
commit cc07c357e4
26 changed files with 200 additions and 179 deletions

View File

@@ -128,9 +128,9 @@ error: foo
--> test.rs:2:10
|
2 | fn foo() {
| __________^ starting here...
| __________^
3 | | }
| |_^ ...ending here: test
| |_^ test
"#);
}
@@ -161,11 +161,11 @@ error: foo
--> test.rs:2:10
|
2 | fn foo() {
| __________^ starting here...
| __________^
3 | |
4 | |
5 | | }
| |___^ ...ending here: test
| |___^ test
"#);
}
@@ -207,14 +207,14 @@ error: foo
--> test.rs:3:3
|
3 | X0 Y0
| ____^__- starting here...
| ____^__-
| | ___|
| || starting here...
| ||
4 | || X1 Y1
5 | || X2 Y2
| ||____^__- ...ending here: `Y` is a good letter too
| ||____^__- `Y` is a good letter too
| |____|
| ...ending here: `X` is a good letter
| `X` is a good letter
"#);
}
@@ -256,13 +256,13 @@ error: foo
--> test.rs:3:3
|
3 | X0 Y0
| ____^__- starting here...
| ____^__-
| | ___|
| || starting here...
| ||
4 | || Y1 X1
| ||____-__^ ...ending here: `X` is a good letter
| ||____-__^ `X` is a good letter
| |_____|
| ...ending here: `Y` is a good letter too
| `Y` is a good letter too
"#);
}
@@ -306,13 +306,13 @@ error: foo
--> test.rs:3:6
|
3 | X0 Y0 Z0
| ______^ starting here...
| ______^
4 | | X1 Y1 Z1
| |_________- starting here...
| |_________-
5 | || X2 Y2 Z2
| ||____^ ...ending here: `X` is a good letter
| ||____^ `X` is a good letter
6 | | X3 Y3 Z3
| |_____- ...ending here: `Y` is a good letter too
| |_____- `Y` is a good letter too
"#);
}
@@ -366,16 +366,16 @@ error: foo
--> test.rs:3:3
|
3 | X0 Y0 Z0
| _____^__-__- starting here...
| _____^__-__-
| | ____|__|
| || ___| starting here...
| ||| starting here...
| || ___|
| |||
4 | ||| X1 Y1 Z1
5 | ||| X2 Y2 Z2
| |||____^__-__- ...ending here: `Z` label
| |||____^__-__- `Z` label
| ||____|__|
| |____| ...ending here: `Y` is a good letter too
| ...ending here: `X` is a good letter
| |____| `Y` is a good letter too
| `X` is a good letter
"#);
}
@@ -430,17 +430,17 @@ error: foo
--> test.rs:3:6
|
3 | X0 Y0 Z0
| ______^ starting here...
| ______^
4 | | X1 Y1 Z1
| |____^_- starting here...
| |____^_-
| ||____|
| | ...ending here: `X` is a good letter
| | `X` is a good letter
5 | | X2 Y2 Z2
| |____-______- ...ending here: `Y` is a good letter too
| |____-______- `Y` is a good letter too
| ____|
| | starting here...
| |
6 | | X3 Y3 Z3
| |________- ...ending here: `Z`
| |________- `Z`
"#);
}
@@ -458,7 +458,7 @@ fn foo() {
vec![
SpanLabel {
start: Position {
string: "Y0",
string: "X0",
count: 1,
},
end: Position {
@@ -481,16 +481,15 @@ fn foo() {
],
r#"
error: foo
--> test.rs:3:6
--> test.rs:3:3
|
3 | X0 Y0 Z0
| ______^ starting here...
3 | / X0 Y0 Z0
4 | | X1 Y1 Z1
| |____^ ...ending here: `X` is a good letter
| |____^ `X` is a good letter
5 | X2 Y2 Z2
| ______- starting here...
| ______-
6 | | X3 Y3 Z3
| |__________- ...ending here: `Y` is a good letter too
| |__________- `Y` is a good letter too
"#);
}
@@ -534,14 +533,14 @@ error: foo
--> test.rs:3:6
|
3 | X0 Y0 Z0
| ______^ starting here...
| ______^
4 | | X1 Y1 Z1
| |____^____- starting here...
| |____^____-
| ||____|
| | ...ending here: `X` is a good letter
| | `X` is a good letter
5 | | X2 Y2 Z2
6 | | X3 Y3 Z3
| |___________- ...ending here: `Y` is a good letter too
| |___________- `Y` is a good letter too
"#);
}
@@ -982,18 +981,18 @@ error: foo
--> test.rs:3:6
|
3 | X0 Y0 Z0
| ______^ starting here...
| ______^
4 | | X1 Y1 Z1
| |____^____- starting here...
| |____^____-
| ||____|
| | ...ending here: `X` is a good letter
| | `X` is a good letter
5 | | 1
6 | | 2
7 | | 3
... |
15 | | X2 Y2 Z2
16 | | X3 Y3 Z3
| |___________- ...ending here: `Y` is a good letter too
| |___________- `Y` is a good letter too
"#);
}
@@ -1047,21 +1046,21 @@ error: foo
--> test.rs:3:6
|
3 | X0 Y0 Z0
| ______^ starting here...
| ______^
4 | | 1
5 | | 2
6 | | 3
7 | | X1 Y1 Z1
| |_________- starting here...
| |_________-
8 | || 4
9 | || 5
10 | || 6
11 | || X2 Y2 Z2
| ||__________- ...ending here: `Z` is a good letter too
| ||__________- `Z` is a good letter too
... |
15 | | 10
16 | | X3 Y3 Z3
| |_______^ ...ending here: `Y` is a good letter
| |_______^ `Y` is a good letter
"#);
}