testing/quick-lint-js: upgrade to 2.17.0
2.16.0...2.17.0 -> code changes lgtm on first glance
Changes
## 2.17.0 (2023-10-25)
[Downloads](https://c.quick-lint-js.com/releases/2.17.0/)
### Added
* quick-lint-js now understands decorators.
* quick-lint-js now understands `accessor` fields.
* `class C { myField, }` now reports better diagnostics.
* quick-lint-js now compiles correctly on big-endian architectures such as
S/390 (Linux s390x).
* Missing commas in array literals now reports [E0712][]. (Implemented by
[koopiehoop][].)
* `get *prop()` and `set *prop()` in classes now report [E0713][] ("getters and
setters cannot be generators"). (Implemented by [koopiehoop][].)
* `async get` and `async set` in classes now report [E0714][] ("'async' keyword
is not allowed on getters or setters"). (Implemented by [koopiehoop][].)
* Multiple `export default` statements now report [E0715][] ("cannot use
multiple `export default` statements in one module"). (Implemented by
[Ariel Don][].)
* Emacs: The Debian/Ubuntu package now installs the Emacs plugin. Manual
installation of the .el files is no longer required.
* CLI: The new `--stdin-path` CLI option allows users of the `--stdin` option
(primarily text editors) to have quick-lint-js detect the language
automatically via `--language=default` or `--language=experimental-default`.
* TypeScript support (still experimental):
* CLI: The new `--language=experimental-default` option auto-detects the
language based on the file's extension (`.ts`, `.tsx`, `.d.ts`, or `.js`).
* Emacs: Flymake plugin users can now opt into TypeScript support. See the
[Flymake configuration instructions][emacs-configure-flymake].
* Class method overload signatures are now parsed.
* [E0398][] is now reported when using both `abstract` and `static` on a
single class property.
* `,` is now allowed after interface fields. (Previously only `;` or a newline
was allowed.)
* `if (cond);` now reports [E0064][] ("missing body for 'if' statement").
(Implemented by [Samir Hamud][].)
* Type predicates are now supported in function types (e.g.
`(param) => param is Type`).
* `declare` fields are now parsed inside classes.
* `declare global` blocks are now parsed.
### Fixed
* [E0072][] is no longer falsely reported if `function` has a newline after it.
* [E0196][] is no longer falsely reported if the shadowing variable is declared
in the head of a `for` loop. For example, quick-lint-js no longer warns about
`let x; for (let x = 0;;);`.
* Emacs: .el files are now installed in the correct place on Arch Linux, btw.
* Emacs: The Flymake plugin now reliably clears out diagnostics after issues are
fixed. Sticky diagnostics are no more.
* TypeScript support (still experimental):
* A newline after `public`, `protected`, `private`, or `readonly` inside a
class is now interpreted correctly.
* `<T>(T: T) => {}` (a generic arrow function with the same name for a
run-time parameter and a generic parameter) no longer falsely reports
[E0034][] ("redeclaration of variable").
* A namespace with the same name as an interface or type alias no longer
falsely reports [E0034][] ("redeclaration of variable").
* `declare class` and `function` with the same name no longer falsely reports
[E0034][] ("redeclaration of variable").
* `(a?, ...b) => ReturnType` in a TypeScript type no longer falsely reports
[E0379][] ("optional parameter cannot be followed by a required parameter").
* LSP: A file named `a.tsxbanana.ts` is no longer recognized as a
TypeScript JSX file. It is now recognized as a non-JSX TypeScript
file.
* Nested `module` declarations no longer falsely report [E0361][]. E0361's
message has been changed:
* Before: "module with string name is only allowed at the top level"
* After: "TypeScript 'declare module' with string name is not allowed in
namespaces"