diff options
Diffstat (limited to 'tests/ui/range/range-inclusive-pattern-precedence.rs')
-rw-r--r-- | tests/ui/range/range-inclusive-pattern-precedence.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/ui/range/range-inclusive-pattern-precedence.rs b/tests/ui/range/range-inclusive-pattern-precedence.rs new file mode 100644 index 000000000..b294e436f --- /dev/null +++ b/tests/ui/range/range-inclusive-pattern-precedence.rs @@ -0,0 +1,21 @@ +// In expression, `&a..=b` is treated as `(&a)..=(b)` and `box a..=b` is +// `(box a)..=(b)`. In a pattern, however, `&a..=b` means `&(a..=b)`. This may +// lead to confusion. + +// run-rustfix + +#![warn(ellipsis_inclusive_range_patterns)] + +pub fn main() { + match &12 { + &0...9 => {} + //~^ WARN `...` range patterns are deprecated + //~| WARN this is accepted in the current edition + //~| HELP use `..=` for an inclusive range + &10..=15 => {} + //~^ ERROR the range pattern here has ambiguous interpretation + //~| HELP add parentheses to clarify the precedence + &(16..=20) => {} + _ => {} + } +} |