1d78004575
Add nightly-only theming support to rustc output using Unicode box drawing characters instead of ASCII-art to draw the terminal UI: After: ``` error: foo ╭▸ test.rs:3:3 │ 3 │ X0 Y0 Z0 │ ┌───╿──│──┘ │ ┌│───│──┘ │ ┏││━━━┙ │ ┃││ 4 │ ┃││ X1 Y1 Z1 5 │ ┃││ X2 Y2 Z2 │ ┃│└────╿──│──┘ `Z` label │ ┃└─────│──┤ │ ┗━━━━━━┥ `Y` is a good letter too │ `X` is a good letter ╰╴ note: bar ╭▸ test.rs:4:3 │ 4 │ ┏ X1 Y1 Z1 5 │ ┃ X2 Y2 Z2 6 │ ┃ X3 Y3 Z3 │ ┗━━━━━━━━━━┛ ├ note: bar ╰ note: baz note: qux ╭▸ test.rs:4:3 │ 4 │ X1 Y1 Z1 ╰╴ ━━━━━━━━ ``` Before: ``` error: foo --> test.rs:3:3 | 3 | X0 Y0 Z0 | ___^__-__- | |___|__| | ||___| | ||| 4 | ||| X1 Y1 Z1 5 | ||| X2 Y2 Z2 | |||____^__-__- `Z` label | ||_____|__| | |______| `Y` is a good letter too | `X` is a good letter | note: bar --> test.rs:4:3 | 4 | / X1 Y1 Z1 5 | | X2 Y2 Z2 6 | | X3 Y3 Z3 | |__________^ = note: bar = note: baz note: qux --> test.rs:4:3 | 4 | X1 Y1 Z1 | ^^^^^^^^ ```
22 lines
563 B
Rust
22 lines
563 B
Rust
//@ compile-flags: -Zunstable-options=yes --error-format=human-unicode --color=always
|
|
//@ edition:2018
|
|
//@ only-linux
|
|
|
|
use core::pin::Pin;
|
|
use core::future::Future;
|
|
use core::any::Any;
|
|
|
|
fn query(_: fn(Box<(dyn Any + Send + '_)>) -> Pin<Box<(
|
|
dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static
|
|
)>>) {}
|
|
|
|
fn wrapped_fn<'a>(_: Box<(dyn Any + Send)>) -> Pin<Box<(
|
|
dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static
|
|
)>> {
|
|
Box::pin(async { Err("nope".into()) })
|
|
}
|
|
|
|
fn main() {
|
|
query(wrapped_fn);
|
|
}
|