# no-useless-rename

Disallow imports, exports, and destructuring fields renamed to the same name

Renaming an import, export, or destructured field to its existing name adds syntax without changing the introduced binding.
Instead, you SHOULD use the corresponding shorthand form.

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

## Reported

```ds title="main.ds"
function name(user: { name: string }): string {
    const { name: name } = user;
    return name;
}
```

## Accepted

```ds title="main.ds"
function name(user: { name: string }): string {
    const { name } = user;
    return name;
}
```

## Prior art

- [ESLint · no-useless-rename](https://eslint.org/docs/latest/rules/no-useless-rename)

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