Skip to content

2.0.0 (2022-02-08)

Compare
Choose a tag to compare
@kyle-wannacott kyle-wannacott released this 08 Apr 00:25
· 38 commits to master since this release

Downloads

Added

  • quick-lint-js now supports JSX syntax in both .js and .jsx files.
  • New diagnostics for JSX: E0019, E0181, E0182, E0183,
    E0186, E0187, E0189, E0191, E0192, E0193
  • if (...) {...} else (...) {...} now reports E0184 ('missing if after
    else') (implemented by Himanshu).
  • if (x = "") now reports E0188 ('= changes variables; to compare, use
    === instead').
  • if (a == "X" || "Y") now reports E0190 ('missing comparison; === does
    not extend to the right side of ||').
  • async (param1, param2) {} now reports E0176 ('missing arrow operator for
    arrow function'). (E0176 was previously reported only for non-async
    arrow functions.)
  • let x = 'nah'; if (y) { let x = 'yah'; } now reports E0196 ('new
    variable shadows existing variable'). This warning is reported only when an
    assignment (instead of a new variable declaration) was intended.
  • console.log(“hello world”); now reports E0197 (''“' is not allowed for
    strings; use " instead').
  • -1 ** 2 now reports E0194 (missing parentheses around left-hand side of
    **).
  • typeof 10 ** 7 now reports E0195 (missing parentheses around operand of
    typeof).

Fixed

  • LSP: When responding to unsupported methods with error code -32601,
    quick-lint-js now includes the request ID. (Previously, the "id" field was
    always null.)
  • CLI: If a crash occurs due to E0054 or E0203, the CLI no longer
    crashes (e.g. with an illegal instruction error).
  • quick-lint-js no longer ignores elements of assigned arrays. For example,
    [fisrt, second] = s.split(' '); will now report E0057 for fisrt (if
    fisrt is not declared).
  • quick-lint-js no longer incorrectly reports E0176 (missing arrow operator
    for arrow function) if the extends clause for a class is parenthesized
    and contains commas (e.g. class A extends (B, C) {}).
  • quick-lint-js no longer incorrectly reports E0016, E0038, E0060,
    or E0207 in tagged template literals. (These errors are still reported for
    untagged template literals and for string literals.)

Changed

  • Assigning to an imported variable now reports E0185 ('assignment to
    imported variable') instead of E0003 ('assignment to const variable')
    (implemented by Matheus de Sousa).