update to new error format E0409
This commit is contained in:
parent
197be89f36
commit
193b9ae86b
@ -117,7 +117,7 @@ enum ResolutionError<'a> {
|
||||
/// error E0408: variable `{}` from pattern #{} is not bound in pattern #{}
|
||||
VariableNotBoundInPattern(Name, usize, usize),
|
||||
/// error E0409: variable is bound with different mode in pattern #{} than in pattern #1
|
||||
VariableBoundWithDifferentMode(Name, usize),
|
||||
VariableBoundWithDifferentMode(Name, usize, Span),
|
||||
/// error E0411: use of `Self` outside of an impl or trait
|
||||
SelfUsedOutsideImplOrTrait,
|
||||
/// error E0412: use of undeclared
|
||||
@ -270,14 +270,19 @@ fn resolve_struct_error<'b, 'a: 'b, 'c>(resolver: &'b Resolver<'a>,
|
||||
from,
|
||||
to)
|
||||
}
|
||||
ResolutionError::VariableBoundWithDifferentMode(variable_name, pattern_number) => {
|
||||
struct_span_err!(resolver.session,
|
||||
ResolutionError::VariableBoundWithDifferentMode(variable_name,
|
||||
pattern_number,
|
||||
first_binding_span) => {
|
||||
let mut err = struct_span_err!(resolver.session,
|
||||
span,
|
||||
E0409,
|
||||
"variable `{}` is bound with different mode in pattern #{} than in \
|
||||
pattern #1",
|
||||
variable_name,
|
||||
pattern_number)
|
||||
pattern_number);
|
||||
err.span_label(span, &format!("bound in different ways"));
|
||||
err.span_label(first_binding_span, &format!("first binding"));
|
||||
err
|
||||
}
|
||||
ResolutionError::SelfUsedOutsideImplOrTrait => {
|
||||
let mut err = struct_span_err!(resolver.session,
|
||||
@ -2044,8 +2049,10 @@ impl<'a> Resolver<'a> {
|
||||
if binding_0.binding_mode != binding_i.binding_mode {
|
||||
resolve_error(self,
|
||||
binding_i.span,
|
||||
ResolutionError::VariableBoundWithDifferentMode(key.name,
|
||||
i + 1));
|
||||
ResolutionError::VariableBoundWithDifferentMode(
|
||||
key.name,
|
||||
i + 1,
|
||||
binding_0.span));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,12 @@ fn main() {
|
||||
|
||||
match x {
|
||||
(0, ref y) | (y, 0) => {} //~ ERROR E0409
|
||||
//~^ ERROR E0308
|
||||
//~^ NOTE bound in different ways
|
||||
//~| NOTE first binding
|
||||
//~| ERROR E0308
|
||||
//~| NOTE expected &{integer}, found integral variable
|
||||
//~| NOTE expected type `&{integer}`
|
||||
//~| NOTE found type `{integer}`
|
||||
_ => ()
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user