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

useExhaustiveDependencies not warning when dependencies declared later than used #5159

Open
1 task done
secretwpn opened this issue Feb 19, 2025 · 2 comments
Open
1 task done
Labels
S-Needs response Status: await response from OP S-Needs triage Status: this issue needs to be triaged

Comments

@secretwpn
Copy link

Environment information

CLI:
  Version:                      1.9.4
  Color support:                true

Platform:
  CPU Architecture:             x86_64
  OS:                           windows

Environment:
  BIOME_LOG_PATH:               unset
  BIOME_LOG_PREFIX_NAME:        unset
  BIOME_CONFIG_PATH:            unset
  NO_COLOR:                     unset
  TERM:                         "xterm-256color"
  JS_RUNTIME_VERSION:           "v20.17.0"
  JS_RUNTIME_NAME:              "node"
  NODE_PACKAGE_MANAGER:         "bun/1.2.2"

Biome Configuration:
  Status:                       Loaded successfully
  Formatter disabled:           false
  Linter disabled:              false
  Organize imports disabled:    false
  VCS disabled:                 false

Linter:
  JavaScript enabled:           true
  JSON enabled:                 true
  CSS enabled:                  true
  GraphQL enabled:              false
  Recommended:                  false
  All:                          false
  Enabled rules:
  a11y/noBlankTarget
  correctness/noChildrenProp
  security/noDangerouslySetInnerHtmlWithChildren
  correctness/useJsxKeyInIterable
  suspicious/useAwait
  correctness/useExhaustiveDependencies
  suspicious/noCommentText
  correctness/useHookAtTopLevel
  suspicious/noDuplicateJsxProps

Workspace:
  Open Documents:               0

Rule name

useExhaustiveDependencies

Playground link

https://biomejs.dev/playground/?code=aQBtAHAAbwByAHQAIAB7ACAAdQBzAGUARQBmAGYAZQBjAHQAIAB9ACAAZgByAG8AbQAgACIAcgBlAGEAYwB0ACIACgAKAGkAbgB0AGUAcgBmAGEAYwBlACAAQgBpAG8AbQBlAEIAdQBnAEQAZQBtAG8AUAByAG8AcABzACAAewAKACAAIAAgACAAcAByAG8AcAA6ACAAcwB0AHIAaQBuAGcACgB9AAoACgBlAHgAcABvAHIAdAAgAGYAdQBuAGMAdABpAG8AbgAgAEIAaQBvAG0AZQBCAHUAZwBEAGUAbQBvAEkAbgBjAG8AcgByAGUAYwB0AEIAZQBoAGEAdgBpAG8AcgAoAHAAcgBvAHAAcwA6ACAAQgBpAG8AbQBlAEIAdQBnAEQAZQBtAG8AUAByAG8AcABzACkAOgAgAEoAUwBYAC4ARQBsAGUAbQBlAG4AdAAgAHsACgAgACAAIAAgAC8ALwAgAGwAaQBuAHQAZQByACAAZABvAGUAcwAgAG4AbwB0ACAAYwBhAHQAYwBoACAAdQBzAGUARQBmAGYAZQBjAHQAIAB2AGkAbwBsAGEAdABpAG4AZwAgAHUAcwBlAEUAeABoAGEAdQBzAHQAaQB2AGUARABlAHAAZQBuAGQAZQBuAGMAaQBlAHMAIAByAHUAbABlAAoAIAAgACAAIAAvAC8AIABvAG4AZQAgAG0AaQBnAGgAdAAgAGEAcgBnAHUAZQAgAHQAaABhAHQAIABwAHIAbwBwACAAaQBzACAAbgBvAHQAIAB5AGUAdAAgAGQAZQBjAGwAYQByAGUAZAAgAGEAbgBkACAAcwBoAG8AdQBsAGQAIABiAGUAIABjAGEAdQBnAGgAdAAgAGIAeQAgAGEAIABzAGUAcABhAHIAYQB0AGUAIAByAHUAbABlACAAbgBvAFUAbgBkAGUAYwBsAGEAcgBlAGQAVgBhAHIAaQBhAGIAbABlAHMACgAgACAAIAAgAC8ALwAgAGIAdQB0ACAAdwBpAHQAaAAgAG4AbwBVAG4AZABlAGMAbABhAHIAZQBkAFYAYQByAGkAYQBiAGwAZQBzACAAZQBuAGEAYgBsAGUAZAAsACAAdABoAGkAcwAgAHcAaQBsAGwAIABuAG8AdAAgAGcAaQB2AGUAIAB3AGEAcgBuAGkAbgBnACAAZQBpAHQAaABlAHIACgAgACAAIAAgAHUAcwBlAEUAZgBmAGUAYwB0ACgAKAApACAAPQA%2BACAAewAKACAAIAAgACAAIAAgACAAIABjAG8AbgBzAG8AbABlAC4AbABvAGcAKABwAHIAbwBwACkACgAgACAAIAAgAH0ALAAgAFsAXQApAAoACgAgACAAIAAgAGMAbwBuAHMAdAAgAHsAIABwAHIAbwBwACAAfQAgAD0AIABwAHIAbwBwAHMACgAKACAAIAAgACAAcgBlAHQAdQByAG4AIAA8AGQAaQB2AD4AewBwAHIAbwBwAH0APAAvAGQAaQB2AD4ACgB9AAoACgAKAGUAeABwAG8AcgB0ACAAZgB1AG4AYwB0AGkAbwBuACAAQgBpAG8AbQBlAEIAdQBnAEQAZQBtAG8AQwBvAHIAcgBlAGMAdABCAGUAaABhAHYAaQBvAHIAKABwAHIAbwBwAHMAOgAgAEIAaQBvAG0AZQBCAHUAZwBEAGUAbQBvAFAAcgBvAHAAcwApADoAIABKAFMAWAAuAEUAbABlAG0AZQBuAHQAIAB7AAoAIAAgACAAIAAvAC8AIABoAGUAcgBlACAAdABoAGUAIABwAHIAbwBwACAAaQBzACAAZABlAGYAaQBuAGUAZAAgAGIAZQBmAG8AcgBlACAAdQBzAGUARQBmAGYAZQBjAHQAIABhAG4AZAAgAGwAaQBuAHQAZQByACAAZABvAGUAcwAgAGMAYQB0AGMAaAAgAHQAaABlACAAdQBzAGUARQB4AGgAYQB1AHMAdABpAHYAZQBEAGUAcABlAG4AZABlAG4AYwBpAGUAcwAgAHIAdQBsAGUAIAB2AGkAbwBsAGEAdABpAG8AbgAKACAAIAAgACAAYwBvAG4AcwB0ACAAewAgAHAAcgBvAHAAIAB9ACAAPQAgAHAAcgBvAHAAcwAKACAAIAAgACAACgAgACAAIAAgAHUAcwBlAEUAZgBmAGUAYwB0ACgAKAApACAAPQA%2BACAAewAKACAAIAAgACAAIAAgACAAIABjAG8AbgBzAG8AbABlAC4AbABvAGcAKABwAHIAbwBwACkACgAgACAAIAAgAH0ALAAgAFsAXQApAAoACgAgACAAIAAgAHIAZQB0AHUAcgBuACAAPABkAGkAdgA%2BAHsAcAByAG8AcAB9ADwALwBkAGkAdgA%2BAAoAfQA%3D

Expected result

I expect useExhaustiveDependencies rule to catch useEffect not depending on prop regardless of what comes first, prop declaration or useEffect declaration

Code of Conduct

  • I agree to follow Biome's Code of Conduct
@secretwpn secretwpn added the S-Needs triage Status: this issue needs to be triaged label Feb 19, 2025
@ematipico
Copy link
Member

Does the eslint rule catch this case?

@ematipico ematipico added the S-Needs response Status: await response from OP label Feb 19, 2025
@secretwpn
Copy link
Author

secretwpn commented Feb 19, 2025

@ematipico Yes it does. Please have a look eslint playground

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-Needs response Status: await response from OP S-Needs triage Status: this issue needs to be triaged
Projects
None yet
Development

No branches or pull requests

2 participants