# manual-extend

Prefer extend over loops that insert every iterated value

A loop that only inserts each source value repeats the collection's bulk extension operation.
Instead, you SHOULD call `extend` with the source iterable.

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

## Reported

```ds title="main.ds"
function append(target: int32[], source: int32[]): void {
    for (const value of source) {
        target.push(value);
    }
}
```

## Accepted

```ds title="main.ds"
function append(target: int32[], source: int32[]): void {
    target.extend(source);
}
```

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