You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
quick-lint-js now recognizes Deno's global variables, including Deno.
This suppresses undesired E0057 ("use of undeclared variable") warnings.
This is controlled by the deno global group.
if () {} (without a condition) now reports E0452 ("empty parenthesis
after control statement"). (Implemented by Yunus.)
return x, now reports E0026 ("missing operand for operator").
(Implemented by Tom Binford.)
TypeScript support (still experimental):
The satisfies operator is now recognized.
The infer operator is now recognized.
The in and out keywords for generic parameter variance are now
recognized.
Parameter properties (constructor(public readonly name: string, public age: number)) are now recognized.
C<T>=y; now reports E0365 ("TypeScript requires whitespace between
'>' and '=' here").
extends in interface now allows generic arguments, such as in interface I extends T<U> {}.
extends in interface now allows nested namespaces, such as in interface I extends ns1.ns2.ns3.I {}.
FreeBSD: quick-lint-js --debug-apps now works. (Implemented by Nico
Sonack.)
Fixed
Fixed several false errors:
do while (x); while (y); no longer falsely reports E0101 ("missing
body for do-while loop").
{ var async; async } no longer falsely reports E0054 ("unexpected
token").
async[x] no longer falsely reports E0054 ("unexpected token").
await x ? y : z no longer falsely reports E0311 ("missing parentheses
around parameter").
if (c) async () => {}; else {} no longer falsely reports E0065
("'else' has no corresponding 'if'").
class A extends await {} no longer falsely reports E0111 ("missing
body for class").
class A extends await() {} no longer falsely reports E0176 ("missing
arrow operator for arrow function").
do if (c) {} else (b); while (d); no longer falsely reports E0103
("missing 'while (condition)' for do-while statement").
if (c) {} else (b) d; now correctly reports E0027 ("missing semicolon
after statement").
The CLI's --output-format=gnu-like output (default) no longer prints
terminal escape sequences for "dumb" terminals (where TERM=dumb). (Fixed by wagner riffel.)
FreeBSD: The quick-lint-js-licenses.txt file is now populated correctly.
TypeScript support (still experimental):
let x: C<T>=y; no longer falsely reports an error.
class A extends B<C> {} no longer falsely reports an error.
T extends keyof O ? A : B no longer falsely reports an error.
Changed
Cross compiling now requires you to build with QUICK_LINT_JS_ENABLE_BUILD_TOOLS for the build machine then with QUICK_LINT_JS_USE_BUILD_TOOLS for the target machine. See the cross-compiling documentation for details.
Code signing certificate has been refreshed. The old certificate expires on
April 18, 2023 (PDT) and the new certificate expires on April 17, 2024 (PDT).
The public key is the same between the two certificates: 7ea531a42cd3e7161b6951f93d83449546e90722 (SHA1).