Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

the unused var not be removed #4694

Closed
HomyeeKing opened this issue Oct 30, 2022 · 8 comments · Fixed by #4737
Closed

the unused var not be removed #4694

HomyeeKing opened this issue Oct 30, 2022 · 8 comments · Fixed by #4737

Comments

@HomyeeKing
Copy link

Rollup Version

latest

Operating System (or Browser)

OSX Chrome

Node Version (if applicable)

No response

Link To Reproduction

https://rollupjs.org/repl/?version=3.2.3&shareable=JTdCJTIybW9kdWxlcyUyMiUzQSU1QiU3QiUyMm5hbWUlMjIlM0ElMjJtYWluLmpzJTIyJTJDJTIyY29kZSUyMiUzQSUyMmltcG9ydCUyMCU3QmlzVHJ1ZSU3RCUyMGZyb20lMjAnLiUyRnRlc3QnJTVDbmNvbnNvbGUubG9nKGlzVHJ1ZSgxKSklMjIlMkMlMjJpc0VudHJ5JTIyJTNBdHJ1ZSU3RCUyQyU3QiUyMm5hbWUlMjIlM0ElMjJ0ZXN0LmpzJTIyJTJDJTIyY29kZSUyMiUzQSUyMmV4cG9ydCUyMColMjBmcm9tJTIwJy4lMkZzaGFyZWQuanMnJTVDbmV4cG9ydCUyMColMjBmcm9tJTIwJy4lMkZlbnYuanMnJTIyJTdEJTJDJTdCJTIybmFtZSUyMiUzQSUyMmVudi5qcyUyMiUyQyUyMmNvZGUlMjIlM0ElMjIlNUNuZXhwb3J0JTIwY29uc3QlMjB1YSUyMCUzRCUyMCUyRiolMjAlNDBfX1BVUkVfXyUyMColMkYlNUNuJTIwJTIwdHlwZW9mJTIwbmF2aWdhdG9yJTIwISUzRCUzRCUyMCd1bmRlZmluZWQnJTIwJTNGJTIwbmF2aWdhdG9yLnVzZXJBZ2VudCUyMCUzQSUyMCd1bmtub3cnJTNCJTVDbiU1Q25leHBvcnQlMjBjb25zdCUyMGlzV2ViJTIwJTNEJTIwdHlwZW9mJTIwd2luZG93JTIwISUzRCUzRCUyMCd1bmRlZmluZWQnJTIwJTI2JTI2JTIwJ29ubG9hZCclMjBpbiUyMHdpbmRvdyUzQiU1Q25leHBvcnQlMjBjb25zdCUyMGlzSU9TJTIwJTNEJTIwJTJGKGlQaG9uZSU3Q2lQYWQlN0NpUG9kKSUyRi50ZXN0KHVhKSUzQiU1Q25leHBvcnQlMjBjb25zdCUyMGlzQW5kcm9pZCUyMCUzRCUyMCUyRkFuZHJvaWQlMkYudGVzdCh1YSklM0IlNUNuJTIyJTdEJTJDJTdCJTIybmFtZSUyMiUzQSUyMnNoYXJlZC5qcyUyMiUyQyUyMmNvZGUlMjIlM0ElMjIlNUNuZXhwb3J0JTIwY29uc3QlMjBpc1RydWUlMjAlM0QlMjAodmFsKSUyMCUzRCUzRSUyMHZhbCUyMCUzRCUzRCUzRCUyMCd0cnVlJyUyMCU3QyU3QyUyMHZhbCUyMCUzRCUzRCUzRCUyMHRydWUlM0IlNUNuZXhwb3J0JTIwY29uc3QlMjBpc1VuZGVmaW5lZCUyMCUzRCUyMCh2YWwpJTIwJTNEJTNFJTIwdHlwZW9mJTIwdmFsJTIwJTNEJTNEJTNEJTIwJ3VuZGVmaW5lZCclM0IlNUNuJTIyJTdEJTVEJTJDJTIyb3B0aW9ucyUyMiUzQSU3QiUyMmZvcm1hdCUyMiUzQSUyMmVzJTIyJTJDJTIybmFtZSUyMiUzQSUyMm15QnVuZGxlJTIyJTJDJTIyYW1kJTIyJTNBJTdCJTIyaWQlMjIlM0ElMjIlMjIlN0QlMkMlMjJnbG9iYWxzJTIyJTNBJTdCJTdEJTdEJTJDJTIyZXhhbXBsZSUyMiUzQW51bGwlN0Q=

Expected Behaviour

only isTrue remained

Actual Behaviour

the unused constant ua and others are included

@lukastaegert
Copy link
Member

You have to put your pure annotations into places where they have an effect. They are only observed for call expressions (that is also how it works in Unglify/Terser) https://rollupjs.org/repl/?version=3.2.3&shareable=JTdCJTIybW9kdWxlcyUyMiUzQSU1QiU3QiUyMm5hbWUlMjIlM0ElMjJtYWluLmpzJTIyJTJDJTIyY29kZSUyMiUzQSUyMmltcG9ydCUyMCU3QmlzVHJ1ZSU3RCUyMGZyb20lMjAnLiUyRnRlc3QnJTVDbmNvbnNvbGUubG9nKGlzVHJ1ZSgxKSklMjIlMkMlMjJpc0VudHJ5JTIyJTNBdHJ1ZSU3RCUyQyU3QiUyMm5hbWUlMjIlM0ElMjJ0ZXN0LmpzJTIyJTJDJTIyY29kZSUyMiUzQSUyMmV4cG9ydCUyMColMjBmcm9tJTIwJy4lMkZzaGFyZWQuanMnJTVDbmV4cG9ydCUyMColMjBmcm9tJTIwJy4lMkZlbnYuanMnJTIyJTdEJTJDJTdCJTIybmFtZSUyMiUzQSUyMmVudi5qcyUyMiUyQyUyMmNvZGUlMjIlM0ElMjIlNUNuZXhwb3J0JTIwY29uc3QlMjB1YSUyMCUzRCU1Q24lMjAlMjB0eXBlb2YlMjBuYXZpZ2F0b3IlMjAhJTNEJTNEJTIwJ3VuZGVmaW5lZCclMjAlM0YlMjBuYXZpZ2F0b3IudXNlckFnZW50JTIwJTNBJTIwJ3Vua25vdyclM0IlNUNuJTVDbmV4cG9ydCUyMGNvbnN0JTIwaXNXZWIlMjAlM0QlMjB0eXBlb2YlMjB3aW5kb3clMjAhJTNEJTNEJTIwJ3VuZGVmaW5lZCclMjAlMjYlMjYlMjAnb25sb2FkJyUyMGluJTIwd2luZG93JTNCJTVDbmV4cG9ydCUyMGNvbnN0JTIwaXNJT1MlMjAlM0QlMjAlMkYqJTIwJTQwX19QVVJFX18lMjAqJTJGJTJGKGlQaG9uZSU3Q2lQYWQlN0NpUG9kKSUyRi50ZXN0KHVhKSUzQiU1Q25leHBvcnQlMjBjb25zdCUyMGlzQW5kcm9pZCUyMCUzRCUyMCUyRiolMjAlNDBfX1BVUkVfXyUyMColMkYlMkZBbmRyb2lkJTJGLnRlc3QodWEpJTNCJTVDbiUyMiU3RCUyQyU3QiUyMm5hbWUlMjIlM0ElMjJzaGFyZWQuanMlMjIlMkMlMjJjb2RlJTIyJTNBJTIyJTVDbmV4cG9ydCUyMGNvbnN0JTIwaXNUcnVlJTIwJTNEJTIwKHZhbCklMjAlM0QlM0UlMjB2YWwlMjAlM0QlM0QlM0QlMjAndHJ1ZSclMjAlN0MlN0MlMjB2YWwlMjAlM0QlM0QlM0QlMjB0cnVlJTNCJTVDbmV4cG9ydCUyMGNvbnN0JTIwaXNVbmRlZmluZWQlMjAlM0QlMjAodmFsKSUyMCUzRCUzRSUyMHR5cGVvZiUyMHZhbCUyMCUzRCUzRCUzRCUyMCd1bmRlZmluZWQnJTNCJTVDbiUyMiU3RCU1RCUyQyUyMm9wdGlvbnMlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJlcyUyMiUyQyUyMm5hbWUlMjIlM0ElMjJteUJ1bmRsZSUyMiUyQyUyMmFtZCUyMiUzQSU3QiUyMmlkJTIyJTNBJTIyJTIyJTdEJTJDJTIyZ2xvYmFscyUyMiUzQSU3QiU3RCU3RCUyQyUyMmV4YW1wbGUlMjIlM0FudWxsJTdE

@HomyeeKing
Copy link
Author

@lukastaegert what's the effect of the regular expression?

@lukastaegert
Copy link
Member

Nobody programmed it into Rollup.

@HomyeeKing
Copy link
Author

@lukastaegert also why remain import 'lodash-es'

reproduce link

@lukastaegert
Copy link
Member

Because every external import can have side effects that we do not know about. If you are sure there are none, look into the treeshake.moduleSideEffects option.

@HomyeeKing
Copy link
Author

HomyeeKing commented Oct 31, 2022

Thanks a lot! I've been confused these days because I thought the treeshaking strategy remove those unused package by default

@lukastaegert
Copy link
Member

There is one actionable point left in this issue, which is to declare suitable regular expression prototype methods as side effect free, similar how we do e.g. for string prototype methods.

@rollup-bot
Copy link
Collaborator

This issue has been resolved via #4737 as part of rollup@3.7.0. You can test it via npm install rollup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants