Don't elide information when printing E0308 with Zverbose
This commit is contained in:
parent
e960b5e774
commit
5c642d7d1c
@ -1262,7 +1262,7 @@ fn lifetime_display(lifetime: Region<'_>) -> String {
|
|||||||
let num_display_types = consts_offset - regions_len;
|
let num_display_types = consts_offset - regions_len;
|
||||||
for (i, (ta1, ta2)) in type_arguments.take(num_display_types).enumerate() {
|
for (i, (ta1, ta2)) in type_arguments.take(num_display_types).enumerate() {
|
||||||
let i = i + regions_len;
|
let i = i + regions_len;
|
||||||
if ta1 == ta2 {
|
if ta1 == ta2 && !self.tcx.sess.verbose() {
|
||||||
values.0.push_normal("_");
|
values.0.push_normal("_");
|
||||||
values.1.push_normal("_");
|
values.1.push_normal("_");
|
||||||
} else {
|
} else {
|
||||||
@ -1278,7 +1278,7 @@ fn lifetime_display(lifetime: Region<'_>) -> String {
|
|||||||
let const_arguments = sub1.consts().zip(sub2.consts());
|
let const_arguments = sub1.consts().zip(sub2.consts());
|
||||||
for (i, (ca1, ca2)) in const_arguments.enumerate() {
|
for (i, (ca1, ca2)) in const_arguments.enumerate() {
|
||||||
let i = i + consts_offset;
|
let i = i + consts_offset;
|
||||||
if ca1 == ca2 {
|
if ca1 == ca2 && !self.tcx.sess.verbose() {
|
||||||
values.0.push_normal("_");
|
values.0.push_normal("_");
|
||||||
values.1.push_normal("_");
|
values.1.push_normal("_");
|
||||||
} else {
|
} else {
|
||||||
@ -1457,7 +1457,7 @@ fn lifetime_display(lifetime: Region<'_>) -> String {
|
|||||||
(ty::FnPtr(sig1), ty::FnPtr(sig2)) => self.cmp_fn_sig(sig1, sig2),
|
(ty::FnPtr(sig1), ty::FnPtr(sig2)) => self.cmp_fn_sig(sig1, sig2),
|
||||||
|
|
||||||
_ => {
|
_ => {
|
||||||
if t1 == t2 {
|
if t1 == t2 && !self.tcx.sess.verbose() {
|
||||||
// The two types are the same, elide and don't highlight.
|
// The two types are the same, elide and don't highlight.
|
||||||
(DiagnosticStyledString::normal("_"), DiagnosticStyledString::normal("_"))
|
(DiagnosticStyledString::normal("_"), DiagnosticStyledString::normal("_"))
|
||||||
} else {
|
} else {
|
||||||
|
15
src/test/ui/fn/signature-error-reporting-under-verbose.rs
Normal file
15
src/test/ui/fn/signature-error-reporting-under-verbose.rs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// compile-flags: -Zverbose
|
||||||
|
|
||||||
|
fn foo(_: i32, _: i32) {}
|
||||||
|
|
||||||
|
fn needs_ptr(_: fn(i32, u32)) {}
|
||||||
|
//~^ NOTE function defined here
|
||||||
|
//~| NOTE
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
needs_ptr(foo);
|
||||||
|
//~^ ERROR mismatched types
|
||||||
|
//~| NOTE expected `u32`, found `i32`
|
||||||
|
//~| NOTE expected fn pointer `fn(i32, u32)`
|
||||||
|
//~| NOTE arguments to this function are incorrect
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
error[E0308]: mismatched types
|
||||||
|
--> $DIR/signature-error-reporting-under-verbose.rs:10:15
|
||||||
|
|
|
||||||
|
LL | needs_ptr(foo);
|
||||||
|
| --------- ^^^ expected `u32`, found `i32`
|
||||||
|
| |
|
||||||
|
| arguments to this function are incorrect
|
||||||
|
|
|
||||||
|
= note: expected fn pointer `fn(i32, u32)`
|
||||||
|
found fn item `fn(i32, i32) {foo}`
|
||||||
|
note: function defined here
|
||||||
|
--> $DIR/signature-error-reporting-under-verbose.rs:5:4
|
||||||
|
|
|
||||||
|
LL | fn needs_ptr(_: fn(i32, u32)) {}
|
||||||
|
| ^^^^^^^^^ ---------------
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0308`.
|
Loading…
Reference in New Issue
Block a user