馃拝 noInvalidUseBeforeDeclaration does not raise an error in some complex contexts #2643
Open
1 task done
Labels
A-Linter
Area: linter
L-JavaScript
Language: JavaScript and super languages
S-Enhancement
Status: Improve an existing feature
Environment information
Rule name
noUndeclaredVariables
Playground link
https://biomejs.dev/playground/?lintRules=all&code=aQBtAHAAbwByAHQAIABQAHIAbwBtAGkAcwBlAHMAIABmAHIAbwBtACAAJwBiAGwAdQBlAGIAaQByAGQAJwA7AAoACgBjAG8AbgBzAHQAIABnAGUAdABQAGEAZwBlAGQAQwBvAG4AdABlAG4AdABzACAAPQAgAGEAcwB5AG4AYwAgACgAYwB1AHMAdABvAG0AZQByAEkAZAAsACAAbwBwAHQAaQBvAG4AcwApACAAPQA%2BACAAewAKACAAIAAvAC8AIABoAGkAdAAgAEQAQgAKACAAIABhAHcAYQBpAHQAIABuAGUAdwAgAFAAcgBvAG0AaQBzAGUAKAAoAHIAZQBzAG8AbAB2AGUAKQAgAD0APgAgAHMAZQB0AFQAaQBtAGUAbwB1AHQAKAByAGUAcwBvAGwAdgBlACwAIAAyADUAMAApACkAOwAKAAoAIAAgAHIAZQB0AHUAcgBuACAAWwB7AAoAIAAgACAAIABjAHUAcwB0AG8AbQBlAHIASQBkACwACgAgACAAIAAgAC4ALgAuAG8AcAB0AGkAbwBuAHMALAAKACAAIAB9AF0AOwAKAH0AOwAKAAoAYwBvAG4AcwB0ACAAZgBvAHIAbQBhAHQAUwB1AG0AbQBhAHIAeQBJAHQAZQBtACAAPQAgACgAYQBjAHQAaQBvAG4ALAAgAGMAbwBuAHQAZQBuAHQALAAgAG8AcAB0AGkAbwBuAHMAKQAgAD0APgAgAHsACgAgACAAcgBlAHQAdQByAG4AIAB7AAoAIAAgACAAIAAuAC4ALgBhAGMAdABpAG8AbgAsAAoAIAAgACAAIAAuAC4ALgBjAG8AbgB0AGUAbgB0ACwACgAgACAAIAAgAC4ALgAuAG8AcAB0AGkAbwBuAHMALAAKACAAIAB9ADsACgB9AAoACgBjAG8AbgBzAHQAIABlAHgAYQBtAHAAbABlACAAPQAgAGEAcwB5AG4AYwAgACgAYwB1AHMAdABvAG0AZQByACwAIABhAGMAdABpAG8AbgAsACAAYQBjAHQAaQBvAG4ASQB0AGUAbQBzAEcAcgBvAHUAcABlAGQAKQAgAD0APgAgAHsACgAgACAAYwBvAG4AcwB0ACAAYwBvAG4AdABlAG4AdABzADoAIABSAGUAYwBvAHIAZAA8AHMAdAByAGkAbgBnACwAIABzAHQAcgBpAG4AZwA%2BAFsAXQAgAD0AIABbAF0AOwAKAAoAIAAgAGEAdwBhAGkAdAAgAFAAcgBvAG0AaQBzAGUAcwAuAHAAYQByAGEAbABsAGUAbAAoAGEAYwB0AGkAbwBuAEkAdABlAG0AcwBHAHIAbwB1AHAAZQBkACwAIABhAHMAeQBuAGMAIAAoAGkAdABlAG0AcwApACAAPQA%2BACAAewAKACAAIAAgACAAYwBvAG4AcwB0ACAAYwBvAG4AdABlAG4AdABJAHQAZQBtAHMAIAA9ACAAYQB3AGEAaQB0ACAAZwBlAHQAUABhAGcAZQBkAEMAbwBuAHQAZQBuAHQAcwAoAGMAdQBzAHQAbwBtAGUAcgAuAGkAZAAsACAAewAKACAAIAAgACAAIAAgAGkAZABzADoAIAAgAGkAdABlAG0AcwAuAG0AYQBwACgAKABpAHQAZQBtACkAIAA9AD4AIABpAHQAZQBtAC4AaQBkACkALAAKACAAIAAgACAAIAAgAHQAaQBtAGUAegBvAG4AZQAsACAALwAvACAALQA%2BACAAZQB4AHAAZQBjAHQAaQBuAGcAIABhAG4AIABlAHIAcgBvAHIAIABoAGUAcgBlACAAZgBvAHIACgAgACAAIAAgAH0AKQA7AAoACgAgACAAIAAgAGMAbwBuAHQAZQBuAHQAcwAuAHAAdQBzAGgAKAAuAC4ALgBjAG8AbgB0AGUAbgB0AEkAdABlAG0AcwApADsACgAgACAAfQApADsACgAKACAAIABjAG8AbgBzAHQAIAB0AGkAbQBlAHoAbwBuAGUAIAA9ACAAYQBjAHQAaQBvAG4ALgB0AGkAbQBlAHoAbwBuAGUAOwAKACAAIAAKACAAIABjAG8AbgBzAHQAIABpAHQAZQBtAHMAIAA9ACAAYwBvAG4AdABlAG4AdABzAC4AbQBhAHAAKAAoAGMAbwBuAHQAZQBuAHQAKQAgAD0APgAKACAAIAAgACAAZgBvAHIAbQBhAHQAUwB1AG0AbQBhAHIAeQBJAHQAZQBtACgAYQBjAHQAaQBvAG4ALAAgAGMAbwBuAHQAZQBuAHQALAAgAHsAIAB0AGkAbQBlAHoAbwBuAGUAIAB9ACkALAAKACAAIAApADsACgAKACAAIAByAGUAdAB1AHIAbgAgAGkAdABlAG0AcwA7AAoAfQAKAAoAZQB4AGEAbQBwAGwAZQAoACkAOwA%3D
Expected result
Expected biome to error for variable
Im the repro, I am using a variable (timezone) before initialisation (error I saw at runtime was "ReferenceError: Cannot access 'timezone' before initialization"). Maybe I am misunderstanding how the rule works, but I do remember that eslint would mark these kinds of mistakes
Code of Conduct
The text was updated successfully, but these errors were encountered: