Skip to content

Commit

Permalink
Tweak chained comparison errors.
Browse files Browse the repository at this point in the history
Lower case and give a more precise span: from operator to operator, not
just the last one.
  • Loading branch information
huonw committed Jan 24, 2015
1 parent 2e888d0 commit ec790d6
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 9 deletions.
7 changes: 4 additions & 3 deletions src/libsyntax/parse/parser.rs
Expand Up @@ -2882,12 +2882,13 @@ impl<'a> Parser<'a> {
debug_assert!(ast_util::is_comparison_binop(outer_op));
match lhs.node {
ExprBinary(op, _, _) if ast_util::is_comparison_binop(op.node) => {
let op_span = self.span;
// respan to include both operators
let op_span = mk_sp(op.span.lo, self.span.hi);
self.span_err(op_span,
"Chained comparison operators require parentheses");
"chained comparison operators require parentheses");
if op.node == BiLt && outer_op == BiGt {
self.span_help(op_span,
"use ::< instead of < if you meant to specify type arguments");
"use `::<...>` instead of `<...>` if you meant to specify type arguments");
}
}
_ => {}
Expand Down
Expand Up @@ -12,12 +12,12 @@ fn f<T>() {}

fn main() {
false == false == false;
//~^ ERROR: Chained comparison operators require parentheses
//~^ ERROR: chained comparison operators require parentheses

false == 0 < 2;
//~^ ERROR: Chained comparison operators require parentheses
//~^ ERROR: chained comparison operators require parentheses

f<X>();
//~^ ERROR: Chained comparison operators require parentheses
//~^^ HELP: use ::< instead of < if you meant to specify type arguments
//~^ ERROR: chained comparison operators require parentheses
//~^^ HELP: use `::<...>` instead of `<...>`
}
4 changes: 2 additions & 2 deletions src/test/compile-fail/unsized2.rs
Expand Up @@ -15,6 +15,6 @@ fn f<X>() {}
pub fn main() {
f<type>();
//~^ ERROR expected identifier, found keyword `type`
//~^^ ERROR: Chained comparison operators require parentheses
//~^^^ HELP: use ::< instead of < if you meant to specify type arguments
//~^^ ERROR: chained comparison
//~^^^ HELP: use `::<
}

0 comments on commit ec790d6

Please sign in to comment.