# manual-range-pattern

Prefer range patterns over enumerating consecutive values

A union that enumerates consecutive scalar values repeats the interval element by element.
Instead, you SHOULD write one inclusive range pattern.

- Category: style
- Level: warning
- Fix: suggestion
- Scope: module

## Reported

```ds title="main.ds"
function digit(value: char): boolean {
    return match (value) {
        '0' | '1' | '2' | '3' => true
        _ => false
    };
}
```

## Accepted

```ds title="main.ds"
function digit(value: char): boolean {
    return match (value) {
        '0'..='3' => true
        _ => false
    };
}
```

## Prior art

- [Clippy · manual_range_patterns](https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns)

[language/linter/src/rules/style/manual_range_pattern.rs:10](https://github.com/destack-sh/destack/blob/main/language/linter/src/rules/style/manual_range_pattern.rs#L10)
