Skip to content

[Bug]: Tree-shaking not working for pure functions without annotation #9211

@rturnq

Description

@rturnq

Reproduction link or steps

function noop() {}
noop()

https://repl.rolldown.rs/#eNptjlEKwjAQRK+y7E8VSg8Q8AyC3/kp7UaL7SYkG62E3N3UWhT0b5adeTMJDaqEA/c0NxIWzag+d41dOU3kTgbLwNa63R5S1rxKzcVCqMRHyjV6O469vXPTWTbD+Yv457Oyh8lZLyAPR5Dg9LYd3dIXIIPxdoJqi1eaCyAIrBj1EzhA0gwgnihc2iupIiNpLos10/zq6sm0cdwYmMvwW1kytkJBMD8BZSlhfA==

What is expected?

The pure function and its call should be able to be eliminated, resulting in an empty output.

What is actually happening?

Without adding an annotation to indicate the function has not side-effects, it is not determined to be pure and is not eliminated from the output.

System Info

System:
    OS: macOS 26.3.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 83.36 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 24.14.0 - /Users/rturnquist/.nvm/versions/node/v24.14.0/bin/node
    Yarn: 1.22.22 - /Users/rturnquist/.nvm/versions/node/v24.14.0/bin/yarn
    npm: 11.6.0 - /Users/rturnquist/.nvm/versions/node/v24.14.0/bin/npm
    Deno: 2.6.0 - /Users/rturnquist/.deno/bin/deno
  Browsers:
    Chrome: 147.0.7727.102
    Firefox: 149.0.2
    Safari: 26.3.1

Any additional comments?

No response

Metadata

Metadata

Assignees

Type

Priority

None yet

Effort

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions