Skip to content

💅 useExhaustiveSwitchCases doesn't handle unions of type literals derived from const objects using the typeof operator #7747

@kmkinney

Description

@kmkinney

Environment information

CLI:
  Version:                      2.2.5
  Color support:                true

Platform:
  CPU Architecture:             x86_64
  OS:                           linux

Environment:
  BIOME_LOG_PATH:               unset
  BIOME_LOG_PREFIX_NAME:        unset
  BIOME_CONFIG_PATH:            unset
  BIOME_THREADS:                unset
  NO_COLOR:                     unset
  TERM:                         xterm-kitty
  JS_RUNTIME_VERSION:           unset
  JS_RUNTIME_NAME:              unset
  NODE_PACKAGE_MANAGER:         unset

Biome Configuration:
  Status:                       Loaded successfully
  Path:                         biome.jsonc
  Formatter enabled:            true
  Linter enabled:               true
  Assist enabled:               true
  VCS enabled:                  false

Linter:
  JavaScript enabled:           unset
  JSON enabled:                 unset
  CSS enabled:                  unset
  GraphQL enabled:              unset
  Recommended:                  false
  Enabled rules:
    nursery/useExhaustiveSwitchCases

Workspace:
  Open Documents:               0

Rule name

useExhaustiveSwitchCases

Playground link

https://biomejs.dev/playground/?lintRules=useExhaustiveSwitchCases&code=YwBvAG4AcwB0ACAATABlAHQAdABlAHIAVgBhAGwAdQBlAHMAIAA9ACAAWwAiAEEAIgAsACAAIgBCACIALAAgACIAQwAiAF0AIABhAHMAIABjAG8AcwBuAHQACgB0AHkAcABlACAATABlAHQAdABlAHIAIAA9ACAAKAB0AHkAcABlAG8AZgAgAEwAZQB0AHQAZQByAFYAYQBsAHUAZQBzACkAWwBuAHUAbQBiAGUAcgBdAAoACgBmAHUAbgBjAHQAaQBvAG4AIAB0AGUAcwB0ACgAbABlAHQAdABlAHIAOgAgACIAQQAiACkAOgAgAG4AdQBtAGIAZQByACAAewAKACAAIABzAHcAaQB0AGMAaAAgACgAbABlAHQAdABlAHIAKQAgAHsACgAgACAAIAAgAGMAYQBzAGUAIAAiAEEAIgA6AAoAIAAgACAAIAAgACAAcgBlAHQAdQByAG4AIAAxADsACgAgACAAIAAgAGMAYQBzAGUAIAAiAEIAIgA6AAoAIAAgACAAIAAgACAAcgBlAHQAdQByAG4AIAAxADsACgAgACAAfQAgACAACgB9AAoACgB0AGUAcwB0ACgAKQA7AAoACgBjAG8AbgBzAHQAIABCAGEAcgAgAD0AIAB7AAoAIAAgACIAQQAiADoAIAAxACwACgAgACAAIgBCACIAOgAgADIALAAKACAAIAAiAEMAIgA6ACAAMwAKAH0AIABhAHMAIABjAG8AbgBzAHQACgAKAHQAeQBwAGUAIABMAGUAdAB0AGUAcgAyACAAPQAgAGsAZQB5AG8AZgAgACgAdAB5AHAAZQBvAGYAIABCAGEAcgApAAoACgBmAHUAbgBjAHQAaQBvAG4AIAB0AGUAcwB0ADIAKABsAGUAdAB0AGUAcgA6ACAATABlAHQAdABlAHIAMgApADoAIABuAHUAbQBiAGUAcgAgAHsACgAgACAAcwB3AGkAdABjAGgAIAAoAGwAZQB0AHQAZQByACkAIAB7AAoAIAAgACAAIABjAGEAcwBlACAAIgBBACIAOgAKACAAIAAgACAAIAAgAHIAZQB0AHUAcgBuACAAMQA7AAoAIAAgACAAIABjAGEAcwBlACAAIgBCACIAOgAKACAAIAAgACAAIAAgAHIAZQB0AHUAcgBuACAAMQA7AAoAIAAgAH0AIAAgAAoAfQAKAAoAdABlAHMAdAAyACgAKQA7AA%3D%3D&language=ts

Expected result

Both switch statements in this playground link should report an error due to missing cases but they do not.

Code of Conduct

  • I agree to follow Biome's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    S-Needs triageStatus: this issue needs to be triaged

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions