# manual-isolate-lowest-one

Prefer isolateLowestOne over its manual wrapping bitwise form

Combining an integer with its wrapping negation isolates its least-significant one bit.
Instead, you SHOULD call `.isolateLowestOne()` on the integer.

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

## Reported

```ds title="main.ds"
function lowest(value: uint32): uint32 {
    return value & value.wrappingNegate();
}
```

## Accepted

```ds title="main.ds"
function lowest(value: uint32): uint32 {
    return value.isolateLowestOne();
}
```

## Prior art

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

[language/linter/src/rules/style/manual_isolate_lowest_one.rs:8](https://github.com/destack-sh/destack/blob/main/language/linter/src/rules/style/manual_isolate_lowest_one.rs#L8)
