Rollup merge of #118756 - jyn514:colors, r=estebank
use bold magenta instead of bold white for highlighting according to a poll of gay people in my phone, purple is the most popular color to use for highlighting | color | percentage | | ---------- | ---------- | | bold white | 6% | | blue | 14% | | cyan | 26% | | purple | 37% | | magenta | 17% | unfortunately, purple is not supported by 16-color terminals, which rustc apparently wants to support for some reason. until we require support for full 256-color terms (e.g. by doing the same feature detection as we currently do for urls), we can't use it. instead, i have collapsed the purple votes into magenta on the theory that they're close, and also because magenta is pretty. before: ![image](https://github.com/rust-lang/rust/assets/23638587/9a89eee2-8b89-422e-8554-812827bb2a23) after: ![image](https://github.com/rust-lang/rust/assets/23638587/5bf3a917-8a20-4afd-af3e-f9491d0d57f5) other colors for comparison: blue: ![image](https://github.com/rust-lang/rust/assets/23638587/6f199c7b-d598-4009-8ffc-6b7b1d0d1f8c) cyan: ![image](https://github.com/rust-lang/rust/assets/23638587/a77e4fe3-563e-4aa5-ae92-745bb67287d1) purple: ![image](https://github.com/rust-lang/rust/assets/23638587/ffe603fb-d811-4106-95a9-4dd4c955924c) magenta without bolding: ![image](https://github.com/rust-lang/rust/assets/23638587/cf927e5f-8b25-4dc2-b8e7-32905a11a459) r? ``@estebank``
This commit is contained in:
commit
dfc5ffacd3
@ -2674,6 +2674,14 @@ fn from_stderr(color: ColorConfig) -> Destination {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// On Windows, BRIGHT_BLUE is hard to read on black. Use cyan instead.
|
||||||
|
///
|
||||||
|
/// See #36178.
|
||||||
|
#[cfg(windows)]
|
||||||
|
const BRIGHT_BLUE: Color = Color::Cyan;
|
||||||
|
#[cfg(not(windows))]
|
||||||
|
const BRIGHT_BLUE: Color = Color::Blue;
|
||||||
|
|
||||||
impl Style {
|
impl Style {
|
||||||
fn color_spec(&self, lvl: Level) -> ColorSpec {
|
fn color_spec(&self, lvl: Level) -> ColorSpec {
|
||||||
let mut spec = ColorSpec::new();
|
let mut spec = ColorSpec::new();
|
||||||
@ -2688,11 +2696,7 @@ fn color_spec(&self, lvl: Level) -> ColorSpec {
|
|||||||
Style::LineNumber => {
|
Style::LineNumber => {
|
||||||
spec.set_bold(true);
|
spec.set_bold(true);
|
||||||
spec.set_intense(true);
|
spec.set_intense(true);
|
||||||
if cfg!(windows) {
|
spec.set_fg(Some(BRIGHT_BLUE));
|
||||||
spec.set_fg(Some(Color::Cyan));
|
|
||||||
} else {
|
|
||||||
spec.set_fg(Some(Color::Blue));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Style::Quotation => {}
|
Style::Quotation => {}
|
||||||
Style::MainHeaderMsg => {
|
Style::MainHeaderMsg => {
|
||||||
@ -2707,11 +2711,7 @@ fn color_spec(&self, lvl: Level) -> ColorSpec {
|
|||||||
}
|
}
|
||||||
Style::UnderlineSecondary | Style::LabelSecondary => {
|
Style::UnderlineSecondary | Style::LabelSecondary => {
|
||||||
spec.set_bold(true).set_intense(true);
|
spec.set_bold(true).set_intense(true);
|
||||||
if cfg!(windows) {
|
spec.set_fg(Some(BRIGHT_BLUE));
|
||||||
spec.set_fg(Some(Color::Cyan));
|
|
||||||
} else {
|
|
||||||
spec.set_fg(Some(Color::Blue));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Style::HeaderMsg | Style::NoStyle => {}
|
Style::HeaderMsg | Style::NoStyle => {}
|
||||||
Style::Level(lvl) => {
|
Style::Level(lvl) => {
|
||||||
@ -2719,7 +2719,7 @@ fn color_spec(&self, lvl: Level) -> ColorSpec {
|
|||||||
spec.set_bold(true);
|
spec.set_bold(true);
|
||||||
}
|
}
|
||||||
Style::Highlight => {
|
Style::Highlight => {
|
||||||
spec.set_bold(true);
|
spec.set_bold(true).set_fg(Some(Color::Magenta));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spec
|
spec
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
const ENTRY_LIMIT: usize = 900;
|
const ENTRY_LIMIT: usize = 900;
|
||||||
// FIXME: The following limits should be reduced eventually.
|
// FIXME: The following limits should be reduced eventually.
|
||||||
const ISSUES_ENTRY_LIMIT: usize = 1852;
|
const ISSUES_ENTRY_LIMIT: usize = 1852;
|
||||||
const ROOT_ENTRY_LIMIT: usize = 866;
|
const ROOT_ENTRY_LIMIT: usize = 867;
|
||||||
|
|
||||||
const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
|
const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
|
||||||
"rs", // test source files
|
"rs", // test source files
|
||||||
|
22
tests/ui/error-emitter/highlighting.not-windows.stderr
Normal file
22
tests/ui/error-emitter/highlighting.not-windows.stderr
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
[0m[1m[38;5;9merror[E0308][0m[0m[1m: mismatched types[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m--> [0m[0m$DIR/highlighting.rs:26:11[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m query(wrapped_fn);[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m-----[0m[0m [0m[0m[1m[38;5;9m^^^^^^^^^^[0m[0m [0m[0m[1m[38;5;9mone type is more general than the other[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12marguments to this function are incorrect[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m= [0m[0m[1mnote[0m[0m: expected fn pointer `[0m[0m[1m[35mfor<'a> [0m[0mfn(Box<[0m[0m[1m[35m(dyn Any + Send + 'a)[0m[0m>) -> Pin<_>`[0m
|
||||||
|
[0m found fn item `fn(Box<[0m[0m[1m[35m(dyn Any + Send + 'static)[0m[0m>) -> Pin<_> {wrapped_fn}`[0m
|
||||||
|
[0m[1m[38;5;10mnote[0m[0m: function defined here[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m--> [0m[0m$DIR/highlighting.rs:15:4[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0mfn query(_: fn(Box<(dyn Any + Send + '_)>) -> Pin<Box<([0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m____[0m[0m[1m[38;5;10m^^^^^[0m[0m[1m[38;5;12m_-[0m
|
||||||
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static[0m
|
||||||
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m)>>) {}[0m
|
||||||
|
[0m [0m[0m[1m[38;5;12m| [0m[0m[1m[38;5;12m|___-[0m
|
||||||
|
|
||||||
|
[0m[1m[38;5;9merror[0m[0m[1m: aborting due to 1 previous error[0m
|
||||||
|
|
||||||
|
[0m[1mFor more information about this error, try `rustc --explain E0308`.[0m
|
27
tests/ui/error-emitter/highlighting.rs
Normal file
27
tests/ui/error-emitter/highlighting.rs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Make sure "highlighted" code is colored purple
|
||||||
|
|
||||||
|
// compile-flags: --error-format=human --color=always
|
||||||
|
// error-pattern:[35mfor<'a> [0m
|
||||||
|
// edition:2018
|
||||||
|
|
||||||
|
// revisions: windows not-windows
|
||||||
|
// [windows]only-windows
|
||||||
|
// [not-windows]ignore-windows
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
22
tests/ui/error-emitter/highlighting.windows.stderr
Normal file
22
tests/ui/error-emitter/highlighting.windows.stderr
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
[0m[1m[38;5;9merror[E0308][0m[0m[1m[38;5;15m: mismatched types[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m--> [0m[0m$DIR/highlighting.rs:26:11[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m query(wrapped_fn);[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m [0m[0m[1m[38;5;14m-----[0m[0m [0m[0m[1m[38;5;9m^^^^^^^^^^[0m[0m [0m[0m[1m[38;5;9mone type is more general than the other[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m [0m[0m[1m[38;5;14marguments to this function are incorrect[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m= [0m[0m[1m[38;5;15mnote[0m[0m: expected fn pointer `[0m[0m[1m[35mfor<'a> [0m[0mfn(Box<[0m[0m[1m[35m(dyn Any + Send + 'a)[0m[0m>) -> Pin<_>`[0m
|
||||||
|
[0m found fn item `fn(Box<[0m[0m[1m[35m(dyn Any + Send + 'static)[0m[0m>) -> Pin<_> {wrapped_fn}`[0m
|
||||||
|
[0m[1m[38;5;10mnote[0m[0m: function defined here[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m--> [0m[0m$DIR/highlighting.rs:15:4[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0mfn query(_: fn(Box<(dyn Any + Send + '_)>) -> Pin<Box<([0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m [0m[0m[1m[38;5;14m____[0m[0m[1m[38;5;10m^^^^^[0m[0m[1m[38;5;14m_-[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m)>>) {}[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m[1m[38;5;14m|___-[0m
|
||||||
|
|
||||||
|
[0m[1m[38;5;9merror[0m[0m[1m[38;5;15m: aborting due to 1 previous error[0m
|
||||||
|
|
||||||
|
[0m[1m[38;5;15mFor more information about this error, try `rustc --explain E0308`.[0m
|
@ -1,17 +1,17 @@
|
|||||||
[0m[1m[38;5;9merror[E0106][0m[0m[1m: missing lifetime specifier[0m
|
[0m[1m[38;5;9merror[E0106][0m[0m[1m: missing lifetime specifier[0m
|
||||||
[0m [0m[0m[1m[38;5;12m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:4:34[0m
|
[0m [0m[0m[1m[38;5;12m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:8:34[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0mfn short(foo_bar: &Vec<&i32>) -> &i32 {
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0mfn short(foo_bar: &Vec<&i32>) -> &i32 {[0m
|
||||||
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m----------[0m[0m [0m[0m[1m[38;5;9m^[0m[0m [0m[0m[1m[38;5;9mexpected named lifetime parameter[0m
|
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m----------[0m[0m [0m[0m[1m[38;5;9m^[0m[0m [0m[0m[1m[38;5;9mexpected named lifetime parameter[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
[0m [0m[0m[1m[38;5;12m= [0m[0m[1mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
[0m [0m[0m[1m[38;5;12m= [0m[0m[1mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
||||||
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m| [0m[0mfn short[0m[0m[38;5;10m<'a>[0m[0m(foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>) -> &[0m[0m[38;5;10m'a [0m[0mi32 {
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m| [0m[0mfn short[0m[0m[38;5;10m<'a>[0m[0m(foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>) -> &[0m[0m[38;5;10m'a [0m[0mi32 {[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[38;5;10m++++[0m[0m [0m[0m[38;5;10m++[0m[0m [0m[0m[38;5;10m++[0m[0m [0m[0m[38;5;10m++[0m
|
[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m[38;5;10m++++[0m[0m [0m[0m[38;5;10m++[0m[0m [0m[0m[38;5;10m++[0m[0m [0m[0m[38;5;10m++[0m
|
||||||
|
|
||||||
[0m[1m[38;5;9merror[E0106][0m[0m[1m: missing lifetime specifier[0m
|
[0m[1m[38;5;9merror[E0106][0m[0m[1m: missing lifetime specifier[0m
|
||||||
[0m [0m[0m[1m[38;5;12m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:11:6[0m
|
[0m [0m[0m[1m[38;5;12m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:15:6[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m foo_bar: &Vec<&i32>,[0m
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m foo_bar: &Vec<&i32>,[0m
|
||||||
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m----------[0m
|
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m----------[0m
|
||||||
@ -22,14 +22,14 @@
|
|||||||
[0m [0m[0m[1m[38;5;12m= [0m[0m[1mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
[0m [0m[0m[1m[38;5;12m= [0m[0m[1mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
||||||
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0mfn long[0m[0m[38;5;10m<'a>[0m[0m(
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0mfn long[0m[0m[38;5;10m<'a>[0m[0m([0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>,[0m
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>,[0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m| [0m[0m something_very_long_so_that_the_line_will_wrap_around__________: i32,[0m
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m| [0m[0m something_very_long_so_that_the_line_will_wrap_around__________: i32,[0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m) -> &[0m[0m[38;5;10m'a [0m[0mi32 {[0m
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m) -> &[0m[0m[38;5;10m'a [0m[0mi32 {[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
|
|
||||||
[0m[1m[38;5;9merror[E0106][0m[0m[1m: missing lifetime specifier[0m
|
[0m[1m[38;5;9merror[E0106][0m[0m[1m: missing lifetime specifier[0m
|
||||||
[0m [0m[0m[1m[38;5;12m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:16:29[0m
|
[0m [0m[0m[1m[38;5;12m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:20:29[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m foo_bar: &Vec<&i32>) -> &i32 {[0m
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[1m[38;5;12m|[0m[0m [0m[0m foo_bar: &Vec<&i32>) -> &i32 {[0m
|
||||||
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m----------[0m[0m [0m[0m[1m[38;5;9m^[0m[0m [0m[0m[1m[38;5;9mexpected named lifetime parameter[0m
|
[0m [0m[0m[1m[38;5;12m| [0m[0m [0m[0m[1m[38;5;12m----------[0m[0m [0m[0m[1m[38;5;9m^[0m[0m [0m[0m[1m[38;5;9mexpected named lifetime parameter[0m
|
||||||
@ -37,7 +37,7 @@
|
|||||||
[0m [0m[0m[1m[38;5;12m= [0m[0m[1mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
[0m [0m[0m[1m[38;5;12m= [0m[0m[1mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
||||||
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0mfn long2[0m[0m[38;5;10m<'a>[0m[0m(
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0mfn long2[0m[0m[38;5;10m<'a>[0m[0m([0m
|
||||||
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>) -> &[0m[0m[38;5;10m'a [0m[0mi32 {[0m
|
[0m[1m[38;5;12mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>) -> &[0m[0m[38;5;10m'a [0m[0mi32 {[0m
|
||||||
[0m [0m[0m[1m[38;5;12m|[0m
|
[0m [0m[0m[1m[38;5;12m|[0m
|
||||||
|
|
@ -1,18 +1,22 @@
|
|||||||
// compile-flags: --error-format=human --color=always
|
// compile-flags: --error-format=human --color=always
|
||||||
// ignore-windows
|
// error-pattern: missing lifetime specifier
|
||||||
|
|
||||||
fn short(foo_bar: &Vec<&i32>) -> &i32 { //~ ERROR missing lifetime specifier
|
// revisions: windows not-windows
|
||||||
|
// [windows]only-windows
|
||||||
|
// [not-windows]ignore-windows
|
||||||
|
|
||||||
|
fn short(foo_bar: &Vec<&i32>) -> &i32 {
|
||||||
&12
|
&12
|
||||||
}
|
}
|
||||||
|
|
||||||
fn long( //~ ERROR missing lifetime specifier
|
fn long(
|
||||||
foo_bar: &Vec<&i32>,
|
foo_bar: &Vec<&i32>,
|
||||||
something_very_long_so_that_the_line_will_wrap_around__________: i32,
|
something_very_long_so_that_the_line_will_wrap_around__________: i32,
|
||||||
) -> &i32 {
|
) -> &i32 {
|
||||||
&12
|
&12
|
||||||
}
|
}
|
||||||
|
|
||||||
fn long2( //~ ERROR missing lifetime specifier
|
fn long2(
|
||||||
foo_bar: &Vec<&i32>) -> &i32 {
|
foo_bar: &Vec<&i32>) -> &i32 {
|
||||||
&12
|
&12
|
||||||
}
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
[0m[1m[38;5;9merror[E0106][0m[0m[1m[38;5;15m: missing lifetime specifier[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:8:34[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0mfn short(foo_bar: &Vec<&i32>) -> &i32 {[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m [0m[0m[1m[38;5;14m----------[0m[0m [0m[0m[1m[38;5;9m^[0m[0m [0m[0m[1m[38;5;9mexpected named lifetime parameter[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m= [0m[0m[1m[38;5;15mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
||||||
|
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m| [0m[0mfn short[0m[0m[38;5;10m<'a>[0m[0m(foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>) -> &[0m[0m[38;5;10m'a [0m[0mi32 {[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m[38;5;10m++++[0m[0m [0m[0m[38;5;10m++[0m[0m [0m[0m[38;5;10m++[0m[0m [0m[0m[38;5;10m++[0m
|
||||||
|
|
||||||
|
[0m[1m[38;5;9merror[E0106][0m[0m[1m[38;5;15m: missing lifetime specifier[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:15:6[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m foo_bar: &Vec<&i32>,[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m [0m[0m[1m[38;5;14m----------[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m something_very_long_so_that_the_line_will_wrap_around__________: i32,[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m) -> &i32 {[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m [0m[0m[1m[38;5;9m^[0m[0m [0m[0m[1m[38;5;9mexpected named lifetime parameter[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m= [0m[0m[1m[38;5;15mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
||||||
|
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[38;5;10m~ [0m[0mfn long[0m[0m[38;5;10m<'a>[0m[0m([0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>,[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m| [0m[0m something_very_long_so_that_the_line_will_wrap_around__________: i32,[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m) -> &[0m[0m[38;5;10m'a [0m[0mi32 {[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
|
||||||
|
[0m[1m[38;5;9merror[E0106][0m[0m[1m[38;5;15m: missing lifetime specifier[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m--> [0m[0m$DIR/multiline-multipart-suggestion.rs:20:29[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[1m[38;5;14m|[0m[0m [0m[0m foo_bar: &Vec<&i32>) -> &i32 {[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m| [0m[0m [0m[0m[1m[38;5;14m----------[0m[0m [0m[0m[1m[38;5;9m^[0m[0m [0m[0m[1m[38;5;9mexpected named lifetime parameter[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m= [0m[0m[1m[38;5;15mhelp[0m[0m: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from[0m
|
||||||
|
[0m[1m[38;5;14mhelp[0m[0m: consider introducing a named lifetime parameter[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[38;5;10m~ [0m[0mfn long2[0m[0m[38;5;10m<'a>[0m[0m([0m
|
||||||
|
[0m[1m[38;5;14mLL[0m[0m [0m[0m[38;5;10m~ [0m[0m foo_bar: &[0m[0m[38;5;10m'a [0m[0mVec<&[0m[0m[38;5;10m'a [0m[0mi32>) -> &[0m[0m[38;5;10m'a [0m[0mi32 {[0m
|
||||||
|
[0m [0m[0m[1m[38;5;14m|[0m
|
||||||
|
|
||||||
|
[0m[1m[38;5;9merror[0m[0m[1m[38;5;15m: aborting due to 3 previous errors[0m
|
||||||
|
|
||||||
|
[0m[1m[38;5;15mFor more information about this error, try `rustc --explain E0106`.[0m
|
Loading…
Reference in New Issue
Block a user