fix a bug in compiletest JSON parsing for duplicate errors
In some cases, we give multiple primary spans, in which case we would report one `//~` annotation per primary span. That was very confusing because these things are reported to the user as a single error. UI tests would be better here.
This commit is contained in:
parent
77d9e38e94
commit
14f1e3459f
7 changed files with 1 additions and 7 deletions
|
|
@ -62,7 +62,6 @@ fn mut_plus_immut() {
|
|||
&mut f
|
||||
+
|
||||
&f; //~ ERROR: cannot borrow `f` as immutable because it is also borrowed as mutable
|
||||
//~^ cannot borrow `f` as immutable because it is also borrowed as mutable
|
||||
}
|
||||
|
||||
fn immut_plus_mut() {
|
||||
|
|
@ -71,7 +70,6 @@ fn immut_plus_mut() {
|
|||
&f
|
||||
+
|
||||
&mut f; //~ ERROR: cannot borrow `f` as mutable because it is also borrowed as immutable
|
||||
//~^ cannot borrow `f` as mutable because it is also borrowed as immutable
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
|
|||
|
|
@ -109,7 +109,6 @@ fn while_aliased_mut_cond(cond: bool, cond2: bool) {
|
|||
borrow(&*v); //~ ERROR cannot borrow
|
||||
if cond2 {
|
||||
x = &mut v; //~ ERROR cannot borrow
|
||||
//~^ ERROR cannot borrow
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ fn main() {
|
|||
match 1 {
|
||||
1 => { addr = &mut x; }
|
||||
//~^ ERROR cannot borrow `x` as mutable more than once at a time
|
||||
//~| ERROR cannot borrow `x` as mutable more than once at a time
|
||||
2 => { addr = &mut x; }
|
||||
//~^ ERROR cannot borrow `x` as mutable more than once at a time
|
||||
_ => { addr = &mut x; }
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ fn causes_ice(mut l: &mut Sexpression) {
|
|||
loop { match l {
|
||||
&mut Sexpression::Num(ref mut n) => {},
|
||||
&mut Sexpression::Cons(ref mut expr) => { //~ ERROR cannot borrow `l.0`
|
||||
//~| ERROR cannot borrow `l.0`
|
||||
l = &mut **expr; //~ ERROR cannot assign to `l`
|
||||
}
|
||||
}}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
fn main() {
|
||||
let Box(a) = loop { };
|
||||
//~^ ERROR expected tuple struct/variant, found struct `Box`
|
||||
//~| ERROR expected tuple struct/variant, found struct `Box`
|
||||
|
||||
// (The below is a trick to allow compiler to infer a type for
|
||||
// variable `a` without attempting to ascribe a type to the
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ use std::fmt::{};
|
|||
// Should get errors for both 'Some' and 'None'
|
||||
use std::option::Option::{Some, None};
|
||||
//~^ ERROR unused imports: `None`, `Some`
|
||||
//~| ERROR unused imports: `None`, `Some`
|
||||
|
||||
use test::A; //~ ERROR unused import: `test::A`
|
||||
// Be sure that if we just bring some methods into scope that they're also
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ fn push_expected_errors(expected_errors: &mut Vec<Error>,
|
|||
let primary_spans: Vec<_> = spans_in_this_file.iter()
|
||||
.cloned()
|
||||
.filter(|span| span.is_primary)
|
||||
.take(1) // sometimes we have more than one showing up in the json; pick first
|
||||
.collect();
|
||||
let primary_spans = if primary_spans.is_empty() {
|
||||
// subdiagnostics often don't have a span of their own;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue