Rule status
This document tracks the ESLint-compatible rules currently implemented by utoo-lint.
Each rule links to the corresponding ESLint rule reference.
Autofix is called out where it is available; unsafe code shapes remain diagnostics
instead of being rewritten.
| Rule | Status |
|---|---|
accessor-pairs | Supports setWithoutGet, getWithoutSet, and enforceForClassMembers configuration |
array-callback-return | Implemented for optional allowImplicit, checkForEach, and allowVoid behavior |
arrow-body-style | Supports always, as-needed, never, and requireReturnForObjectLiteral with comment-, precedence-, and ASI-safe autofix |
block-scoped-var | Implemented |
camelcase | Supports declarations, imports, optional property checks, ignoreDestructuring, ignoreImports, lightweight allow patterns, and parses ignoreGlobals for migration compatibility |
capitalized-comments | Supports always, never, ignoreInlineComments, and ignoreConsecutiveComments configuration with autofix |
class-methods-use-this | Supports methods, accessors, function-valued class fields, exceptMethods, enforceForClassFields, ignoreOverrideMethods, and ignoreClassesWithImplements |
complexity | Supports max, deprecated maximum, classic and modified variants, functions, arrow functions, and static blocks |
consistent-return | Implemented for mixed explicit value/bare returns and value-returning functions that can fall through |
consistent-this | Supports configured aliases for direct this captures and same-scope deferred assignment checks |
constructor-super | Implemented |
curly | Supports all, multi-line, multi, and multi-or-nest configuration; autofixes stable block additions/removals while preserving comments and refusing ASI or dangling-else hazards |
default-case | Implemented with common commentPattern behavior |
default-case-last | Implemented |
default-param-last | Implemented |
dot-notation | Supports autofix plus allowKeywords and common allowPattern configuration |
eol-last | Supports always, never, unix, and windows configuration with autofix |
eqeqeq | Supports always, allow-null, smart, and null: always/ignore/never configuration with safe autofix |
for-direction | Implemented |
func-name-matching | Supports always, never, includeCommonJSModuleExports, and considerPropertyDescriptor configuration |
func-names | Supports always, as-needed, never, and generators configuration |
func-style | Supports declaration/expression styles, allowArrowFunctions, and overrides.namedExports |
getter-return | Supports optional allowImplicit behavior |
grouped-accessor-pairs | Implemented for anyOrder, getBeforeSet, and setBeforeGet options |
guard-for-in | Implemented |
id-denylist | Supports configured restricted identifiers, private identifiers, member-write checks, and renamed import/export skips |
id-length | Supports min, max, exceptions, common exceptionPatterns, and properties for bindings, imports, functions, and class/object properties |
id-match | Supports lightweight pattern matching for declarations and import aliases, with properties, classFields, onlyDeclarations, and ignoreDestructuring configuration |
init-declarations | Supports always, never, and ignoreForLoopInit |
linebreak-style | Supports unix and windows configuration with autofix |
logical-assignment-operators | Implemented for always, optional never, and optional enforceForIfStatements: true behavior with comment-, precedence-, and evaluation-safe autofix |
max-classes-per-file | Supports max and ignoreExpressions configuration |
max-depth | Supports max, deprecated maximum, function scopes, static blocks, and else if chains |
max-lines | Supports max, skipBlankLines, and skipComments configuration |
max-lines-per-function | Supports function and arrow-function line counts plus max, skipBlankLines, skipComments, and IIFEs configuration |
max-nested-callbacks | Supports max, deprecated maximum, and call-argument callback detection |
max-params | Supports max, deprecated maximum, and countThis configuration |
max-statements | Supports max, deprecated maximum, ignoreTopLevelFunctions, and static block isolation |
new-cap | Supports newIsCap, capIsNew, properties, exception names, and exception patterns |
new-parens | Implemented with nested-expression-safe autofix |
no-alert | Implemented with global this, window, and globalThis detection |
no-array-constructor | Implemented with argument-preserving, ASI-safe autofix |
no-async-promise-executor | Implemented |
no-await-in-loop | Implemented |
no-bitwise | Implemented |
no-buffer-constructor | Implemented |
no-caller | Implemented |
no-case-declarations | Implemented |
no-class-assign | Implemented |
no-confusing-arrow | Supports allowParens with autofix when parentheses are allowed |
no-comma-operator | Implemented |
no-compare-neg-zero | Implemented |
no-cond-assign | Implemented |
no-console | Implemented with allow support for configured console methods |
no-const-assign | Implemented |
no-constant-binary-expression | Detects constant logical/nullish short-circuiting, constant nullish/boolean comparisons, and newly constructed object comparisons |
no-constant-condition | Implemented |
no-constructor-return | Implemented |
no-continue | Implemented |
no-control-regex | Implemented |
no-debugger | Implemented |
no-delete-var | Implemented |
no-div-regex | Implemented with autofix |
no-dupe-args | Implemented |
no-dupe-class-members | Implemented |
no-dupe-else-if | Implemented |
no-dupe-keys | Implemented |
no-duplicate-case | Implemented |
no-duplicate-imports | Supports allowSeparateTypeImports and includeExports configuration |
no-else-return | Implemented |
no-empty | Implemented with optional allowEmptyCatch behavior |
no-empty-block-statements | Implemented |
no-empty-character-class | Implemented |
no-empty-function | Implemented with allow behavior for functions, arrow functions, async/generator functions, methods, async/generator methods, getters, setters, and constructors |
no-empty-pattern | Implemented with optional allowObjectPatternsAsParameters behavior |
no-empty-static-block | Implemented |
no-eq-null | Implemented |
no-eval | Supports allowIndirect configuration |
no-ex-assign | Implemented |
no-extend-native | Supports exceptions configuration |
no-extra-bind | Implemented with side-effect- and comment-safe autofix |
no-extra-boolean-cast | Supports safe autofix, enforceForInnerExpressions, and legacy enforceForLogicalOperands configuration |
no-extra-label | Implemented with multi-pass autofix for redundant references and label declarations |
no-extra-semi | Implemented with autofix |
no-fallthrough | Supports allowEmptyCase, common commentPattern, and reportUnusedFallthroughComment configuration |
no-floating-decimal | Implemented with token-safe autofix |
no-for-in | Implemented |
no-func-assign | Implemented |
no-global-assign | Supports exceptions configuration and languageOptions.globals (readonly reports writes, writable allows them) |
no-global-is-finite | Implemented |
no-global-is-nan | Implemented |
no-implicit-coercion | Supports boolean, number, string, allow, and disallowTemplateShorthand configuration |
no-implicit-globals | Supports script top-level var/function checks and optional lexicalBindings checks |
no-implied-eval | Implemented for global timer and execScript calls with evaluated string arguments |
no-import-assign | Implemented |
no-inline-comments | Supports ignorePattern configuration with common regex-like patterns |
no-inner-declarations | Supports default functions mode and both mode for nested var declarations |
no-invalid-regexp | Implemented with optional allowConstructorFlags behavior |
no-invalid-this | Supports strict functions, modules, constructors, explicit callback bindings, class fields/static blocks, TypeScript this parameters, JSDoc @this, and capIsConstructor |
no-irregular-whitespace | Implemented |
no-iterator | Implemented |
no-label-var | Implemented |
no-labels | Implemented |
no-lone-blocks | Implemented with block-scoped binding exceptions |
no-lonely-if | Implemented with safe autofix |
no-loop-func | Implemented |
no-loss-of-precision | Implemented |
no-magic-numbers | Supports detectObjects, enforceConst, ignore, ignoreArrayIndexes, ignoreDefaultValues, ignoreClassFieldInitialValues, ignoreEnums, ignoreNumericLiteralTypes, ignoreReadonlyClassProperties, and ignoreTypeIndexes |
no-mixed-spaces-and-tabs | Supports smart-tabs configuration |
no-misleading-character-class | Implemented |
no-multi-assign | Supports ignoreNonDeclaration configuration and class field initializers |
no-multi-spaces | Supports ignoreEOLComments and common exceptions configuration with autofix |
no-multi-str | Implemented |
no-multiple-empty-lines | Implemented with optional max, maxBOF, and maxEOF behavior and autofix |
no-negated-condition | Implemented |
no-nested-ternary | Implemented |
no-new | Implemented |
no-new-func | Implemented |
no-new-native-nonconstructor | Implemented |
no-new-object | Implemented |
no-new-require | Implemented |
no-new-symbol | Implemented |
no-new-wrappers | Implemented |
no-nonoctal-decimal-escape | Implemented |
no-obj-calls | Implemented |
no-object-constructor | Implemented |
no-octal | Implemented |
no-octal-escape | Implemented |
no-param-reassign | Implemented with optional props, ignorePropertyModificationsFor, and common ignorePropertyModificationsForRegex behavior |
no-path-concat | Implemented |
no-plusplus | Implemented with optional allowForLoopAfterthoughts behavior |
no-process-env | Implemented |
no-process-exit | Implemented |
no-promise-executor-return | Supports allowVoid configuration |
no-proto | Implemented |
no-prototype-builtins | Implemented |
no-redeclare | Implemented with TypeScript-aware fallback to @typescript-eslint/no-redeclare |
no-restricted-exports | Supports restrictedNamedExports and restrictDefaultExports |
no-restricted-globals | Supports direct global restrictions, custom messages, and optional global object checks |
no-restricted-imports | Supports restricted paths, simple patterns, custom messages, import name allow/deny lists, type-only allowances, and re-export checks |
no-restricted-modules | Supports restricted CommonJS require() sources, paths, simple patterns, negated patterns, and custom messages |
no-restricted-properties | Supports object/property restrictions, destructuring, and allowObjects/allowProperties configuration |
no-restricted-syntax | Supports lightweight AST node selector restrictions with custom messages |
no-regex-spaces | Implemented with safe autofix for literals and static string constructors |
no-return-assign | Implemented for except-parens and optional always behavior |
no-return-await | Implemented for return statements, async arrow expression bodies, and nested tail expressions |
no-script-url | Implemented |
no-self-assign | Supports props configuration |
no-self-compare | Implemented |
no-sequences | Implemented with optional allowInParentheses behavior |
no-setter-return | Implemented |
no-shadow | Supports allow, builtinGlobals, hoist, and ignoreOnInitialization configuration |
no-shadow-restricted-names | Implemented |
no-sparse-arrays | Implemented |
no-tabs | Supports allowIndentationTabs configuration |
no-template-curly-in-string | Implemented |
no-ternary | Implemented |
no-this-before-super | Implemented |
no-throw-literal | Implemented |
no-trailing-spaces | Supports skipBlankLines and ignoreComments configuration with autofix |
no-undef | Implemented; accepts names declared in languageOptions.globals and reports globals set to off |
no-undef-init | Implemented with safe autofix for let bindings |
no-unassigned-vars | Reports read let/var bindings that have no initializer and no assignment |
no-underscore-dangle | Supports allow, allowAfterThis, allowAfterSuper, allowAfterThisConstructor, allowFunctionParams, allowInArrayDestructuring, allowInObjectDestructuring, enforceInMethodNames, and enforceInClassFields configuration |
no-undefined | Implemented for identifier references and binding names |
no-unneeded-ternary | Supports defaultAssignment with precedence-, side-effect-, and comment-safe autofix |
no-unexpected-multiline | Reports confusing multiline calls, computed property access, tagged templates, and regexp-looking division chains |
no-unmodified-loop-condition | Implemented |
no-unreachable | Implemented with hoisted declaration handling |
no-unreachable-loop | Supports loop body exit detection and ignore configuration |
no-unsafe-finally | Implemented with local loop, switch, and label exit handling |
no-unsafe-negation | Supports enforceForOrderingRelations configuration |
no-unsafe-optional-chaining | Implemented for unsafe member, call, constructor, tagged template, spread, iteration, destructuring, binary object, with, class extends, and optional disallowArithmeticOperators behavior |
no-unused-private-class-members | Implemented for private fields, methods, accessors, and static blocks |
no-use-before-define | Supports functions, classes, variables, and allowNamedExports configuration |
no-unused-expressions | Implemented with optional allowShortCircuit, allowTernary, and allowTaggedTemplates behavior |
no-unused-labels | Implemented with nested label shadowing and autofix |
no-unused-vars | Supports vars, args, caughtErrors, ignoreRestSiblings, ignoreClassWithStaticInitBlock, ignoreUsingDeclarations, reportUsedIgnorePattern, and common argsIgnorePattern/caughtErrorsIgnorePattern/destructuredArrayIgnorePattern/varsIgnorePattern configuration |
no-useless-assignment | Implements control-flow-aware unused assignment analysis |
no-useless-backreference | Detects nested, forward, disjunctive, and negative-lookaround backreferences in regex literals and static RegExp constructors |
no-useless-call | Implemented |
no-useless-catch | Implemented |
no-useless-computed-key | Implemented with optional enforceForClassMembers behavior and autofix |
no-useless-concat | Implemented for adjacent static string and template literals in concatenation chains |
no-useless-constructor | Implemented |
no-useless-escape | Supports allowRegexCharacters configuration and ESLint template escape handling |
no-useless-rename | Supports autofix plus ignoreDestructuring, ignoreImport, and ignoreExport configuration |
no-useless-return | Implemented with comment-safe autofix for statement-list returns |
no-var | Implemented, with a scope-safe var to let autofix; multi-pass fixing can then apply prefer-const |
no-void | Implemented with optional allowAsStatement behavior |
no-warning-comments | Implemented with configurable terms, location, and common decoration behavior |
no-with | Implemented |
object-shorthand | Supports always, methods, properties, never, avoidQuotes, ignoreConstructors, and avoidExplicitReturnArrows configuration with comment- and semantics-safe autofix |
one-var | Supports string never and per-kind var/let/const never configuration with comment- and context-safe autofix |
operator-assignment | Supports always and never modes with safe autofix |
prefer-arrow-callback | Supports callback function expressions plus allowNamedFunctions and allowUnboundThis configuration; autofixes anonymous synchronous callbacks when parameters, comments, and lexical bindings are safe |
prefer-const | Supports destructuring and ignoreReadBeforeAssign configuration; autofixes let declarations only when every binding can safely become const |
prefer-destructuring | Supports object/array variable declarator and assignment expression configuration plus enforceForRenamedProperties; autofixes simple same-name object property declarations when comments can be preserved |
prefer-exponentiation-operator | Implemented with safe autofix |
prefer-named-capture-group | Detects unnamed capture groups in regex literals and static RegExp constructors |
prefer-numeric-literals | Implemented with autofix for global static string and template parseInt calls with binary, octal, or hexadecimal radix |
prefer-object-has-own | Implemented with autofix |
prefer-object-spread | Supports accessor-safe, comment-preserving autofix for global Object.assign calls with a new object literal target, including single-argument calls |
prefer-promise-reject-errors | Supports allowEmptyReject configuration |
preserve-caught-error | Reports rethrown built-in errors in catch blocks that omit or replace the caught error cause, with requireCatchParameter support |
prefer-regex-literals | Supports disallowRedundantWrapping configuration |
prefer-rest-params | Implemented |
prefer-spread | Implemented |
prefer-template | Implemented |
radix | Implemented |
require-await | Implemented |
require-atomic-updates | Supports allowProperties configuration |
require-unicode-regexp | Supports regexp literals, static RegExp constructors, and requireFlag configuration |
require-yield | Implemented |
sort-imports | Supports declaration/member sorting, ignoreCase, ignoreDeclarationSort, ignoreMemberSort, allowSeparatedGroups, memberSyntaxSortOrder, and comment-safe named-member autofix |
sort-keys | Supports object literal key ordering with asc/desc, caseSensitive, natural, minKeys, and allowLineSeparatedGroups |
sort-vars | Supports same-declaration identifier sorting, ignoreCase, and formatting-preserving autofix for literal initializers |
spaced-comment | Supports always, never, markers, and exceptions configuration with safe autofix |
strict | Supports safe, global, function, and never modes with autofix for redundant directives |
symbol-description | Implemented |
unicode-bom | Supports never and always configuration with autofix |
use-isnan | Supports enforceForIndexOf and enforceForSwitchCase configuration |
valid-typeof | Supports requireStringLiterals configuration |
vars-on-top | Implemented |
wrap-iife | Implemented for outside, inside, and any options with autofix |
yoda | Supports never, always, onlyEquality, and exceptRange configuration with comment- and token-safe autofix |
ESLint comments rules
| Rule | Status |
|---|---|
eslint-comments/no-restricted-disable | Supports restricted disable comments for configured rules |
Import plugin rules
| Rule | Status |
|---|---|
import/default | Implemented for relative imports resolved with fishlint's configured extensions |
import/export | Implemented for duplicate local exports and relative export * |
import/first | Implemented |
import/named | Implemented for relative imports resolved with fishlint's configured extensions |
import/namespace | Implemented for relative namespace imports resolved with fishlint's configured extensions |
import/newline-after-import | Implemented for count, exactCount, and considerComments configurations |
import/no-amd | Implemented |
import/no-cycle | Implemented for relative imports and re-exports resolved with fishlint's configured extensions, with maxDepth (integer, "∞", or Infinity through the JavaScript API), commonjs, and amd configuration |
import/no-duplicates | Implemented with considerQueryString configuration |
import/no-named-as-default | Implemented for relative imports resolved with fishlint's configured extensions |
import/no-named-as-default-member | Implemented for relative imports resolved with fishlint's configured extensions |
import/no-unresolved | Implemented for fishlint's node resolver extensions, smallfish:/minifish: ignores, commonjs, amd, and common ignore pattern behavior |
import/no-self-import | Implemented for relative imports resolved with fishlint's configured extensions |
Jest plugin rules
| Rule | Status |
|---|---|
jest/no-conditional-expect | Implemented for conditionals, catch clauses, Promise catch callbacks, inline test callbacks, and named test callbacks |
jest/no-deprecated-functions | Implemented with installed or configured Jest version detection and upstream autofixes |
jest/no-export | Implemented for ESM, CommonJS, and TypeScript exports in files containing Jest tests |
jest/no-focused-tests | Implemented for focused global, imported, aliased, and chained tests with upstream editor suggestions |
jest/no-identical-title | Implemented for duplicate static test and suite titles at the same suite level |
jest/no-interpolation-in-snapshots | Implemented for interpolated inline snapshot templates, including property matcher overloads |
jest/no-jasmine-globals | Implemented for Jasmine globals, member calls, assignments, shadowed bindings, and upstream autofixes |
jest/no-mocks-import | Implemented for static imports, dynamic imports, and CommonJS requires from nested __mocks__ directories |
jest/no-standalone-expect | Supports suite, test, hook, helper, imported API, and additionalTestBlockFunctions context detection |
jest/valid-describe-callback | Enforces synchronous function callbacks without unexpected parameters or return values, including aliases and describe.each |
jest/valid-expect-in-promise | Requires expectation-bearing then, catch, and finally chains in tests to be returned, awaited, or consumed through supported promise patterns |
jest/valid-expect | Implements argument bounds, matcher and modifier validation, and awaited or returned async assertion checks with all upstream options |
jest/valid-title | Supports static and template titles, all upstream options, .each specifiers, and upstream-safe autofixes |
Promise plugin rules
| Rule | Status |
|---|---|
promise/always-return | Supports ignoreLastCallback and ignoreAssignmentVariable configuration |
promise/catch-or-return | Supports allowThen, allowThenStrict, allowFinally, and string/array terminationMethod configuration |
promise/no-callback-in-promise | Supports exceptions and timeoutsErr configuration, including deferred-callback exceptions |
promise/no-nesting | Implements nested then/catch detection with closest-handler closure exceptions |
promise/no-new-statics | Implements all Promise static methods with autofix |
promise/no-promise-in-callback | Implemented with exemptDeclarations configuration |
promise/no-return-in-finally | Implemented |
promise/no-return-wrap | Implemented with allowReject configuration |
promise/param-names | Implemented with resolvePattern and rejectPattern configuration |
promise/valid-params | Implemented with exclude configuration |
JSX a11y rules
| Rule | Status |
|---|---|
jsx-a11y/alt-text | Supports elements and element component mapping configuration |
jsx-a11y/anchor-has-content | Supports components configuration |
jsx-a11y/aria-props | Implemented |
jsx-a11y/aria-proptypes | Implemented |
jsx-a11y/aria-role | Supports allowedInvalidRoles and ignoreNonDOM configuration |
jsx-a11y/aria-unsupported-elements | Implemented |
jsx-a11y/iframe-has-title | Implemented |
jsx-a11y/img-redundant-alt | Supports components and words configuration |
jsx-a11y/no-access-key | Implemented |
jsx-a11y/no-distracting-elements | Supports elements configuration |
jsx-a11y/role-has-required-aria-props | Implemented |
jsx-a11y/role-supports-aria-props | Implemented |
jsx-a11y/scope | Implemented |
Parser diagnostics
parser-semantic-errors reports parse diagnostics from Yuku, including semantic early errors by default. It is not an ESLint rule and therefore does not have a corresponding ESLint rule page.
React rules
| Rule | Status |
|---|---|
react/button-has-type | Supports button, submit, and reset configuration |
react/default-props-match-prop-types | Supports allowRequiredDefaults configuration |
react/display-name | Supports checkContextObjects and ignoreTranspilerName configuration |
react/forbid-prop-types | Supports forbid, checkContextTypes, and checkChildContextTypes configuration |
react/jsx-boolean-value | Implemented for never and always configurations ; supports safe autofixes with comment preservation |
react/jsx-filename-extension | Supports extensions and allow configuration |
react/jsx-key | Supports checkKeyMustBeforeSpread, checkFragmentShorthand, and warnOnDuplicates configuration |
react/jsx-no-bind | Supports allowArrowFunctions, allowFunctions, allowBind, ignoreRefs, and ignoreDOMComponents configuration |
react/jsx-no-comment-textnodes | Implemented |
react/jsx-no-duplicate-props | Implemented with configurable ignoreCase behavior |
react/jsx-no-undef | Implemented |
react/jsx-uses-react | Implemented |
react/jsx-uses-vars | Accepted for legacy config compatibility; JSX tags are always semantic variable references, matching ESLint 10 |
react/jsx-no-target-blank | Supports allowReferrer, enforceDynamicLinks, warnOnSpreadAttributes, links, and forms configuration |
react/jsx-pascal-case | Supports allowAllCaps, allowLeadingUnderscore, allowNamespace, and ignore configuration |
react/no-access-state-in-setstate | Implemented |
react/no-array-index-key | Implemented |
react/no-children-prop | Supports allowFunctions configuration |
react/no-danger | Implemented |
react/no-danger-with-children | Implemented |
react/no-deprecated | Implemented |
react/no-direct-mutation-state | Implemented |
react/no-find-dom-node | Implemented |
react/no-forward-ref | Opt-in React 19 diagnostic; recognizes named, aliased, default, and namespace imports from react |
react/no-is-mounted | Implemented |
react/no-multi-comp | Supports ignoreStateless configuration |
react/no-unstable-nested-components | Opt-in; supports allowAsProps and propNamePattern, including wrapped nested components |
react/no-redundant-should-component-update | Implemented |
react/no-render-return-value | Implemented for eslint-plugin-react's default/latest React version behavior |
react/no-string-refs | Supports noTemplateLiterals configuration |
react/no-this-in-sfc | Implemented |
react/no-typos | Implemented |
react/no-unescaped-entities | Supports forbid configuration |
react/no-unknown-property | Supports ignore and requireDataLowercase configuration; autofixes known DOM property aliases and casing without creating duplicate attributes |
react/no-unused-prop-types | Supports skipShapeProps, ignore, and customValidators configuration |
react/no-unused-state | Implemented |
react/no-will-update-set-state | Implemented |
react/prefer-es6-class | Supports always and never configurations |
react/prop-types | Supports skipUndeclared, ignore, and customValidators configuration ; recognizes React forwardRef<Ref, Props> generics through memo wrappers |
react/require-render-return | Implemented |
react/self-closing-comp | Supports component and html configuration |
react/style-prop-object | Implemented |
react/void-dom-elements-no-children | Implemented |
React Hooks rules
| Rule | Status |
|---|---|
react-hooks/exhaustive-deps | Implements dependency-array validation for built-in hooks and additionalHooks literal, alternation, anchor, and wildcard patterns; reports missing, duplicate, unnecessary, complex, and unstable dependencies without type information |
react-hooks/rules-of-hooks | Implemented for top-level, ordinary function, class method, callback, conditional branch, and loop checks |
react-hooks/use-memo | Opt-in; rejects parameters, async/generator callbacks, and direct writes to captured bindings in inline and statically resolved named useMemo callbacks. Callback-local reassignment is allowed; nested closure writes are not analyzed |
react-hooks/void-use-memo | Opt-in; checks inline and statically resolved named callbacks with no value return, excluding returns in nested functions. Also checks discarded expression-statement results. Explicit returns (including bare returns), expression bodies, and throwing callbacks are accepted; no all-path return or inferred return-type analysis |
react-hooks/purity | Opt-in; checks global Math.random, Date.now, Date(), zero-argument new Date, crypto.randomUUID, and performance.now and their stable aliases during render, inline/named useMemo, and synchronous IIFEs. Skips deferred callbacks, lazy initializers, and shadowed globals |
react-hooks/set-state-in-render | Opt-in; checks unconditionally executed calls to useState setters and stable aliases, including inline/named useMemo and synchronous IIFEs. Covers setters after normally completing loops and branches; skips conditional updates, possible preceding early exits, reassigned setters, and deferred callbacks |
These opt-in checks are native approximations of React Compiler-related
lints, not the React Compiler diagnostic engine. React imports (ES modules and literal require("react")), stable local aliases,
and local shadowing are resolved. Component/hook names and React memo/forwardRef
wrappers identify render functions. Named memo callbacks are connected to render
invocations. Dynamic reassignment, arbitrary interprocedural analysis, and compiler
data-flow/configuration analysis are not covered. Rules such as
refs, immutability, preserve-manual-memoization, config, and gating remain
unsupported. See configuration.
Unused Imports rules
| Rule | Status |
|---|---|
unused-imports/no-unused-imports | Detects unused default, named, namespace, and type-only bindings in JavaScript, TypeScript, and TSX; autofix preserves used bindings, comments, multiline syntax, and side-effect imports |
TypeScript ESLint rules
| Rule | Status |
|---|---|
@typescript-eslint/adjacent-overload-signatures | Implemented |
@typescript-eslint/array-type | Implemented for default: array, array-simple, and generic configurations |
@typescript-eslint/ban-ts-comment | Implemented for directive modes and minimumDescriptionLength |
@typescript-eslint/ban-tslint-comment | Implemented |
@typescript-eslint/ban-types | Supports types and extendDefaults configuration |
@typescript-eslint/class-literal-property-style | Implemented for fields and getters configurations |
@typescript-eslint/consistent-type-assertions | Supports assertionStyle plus object/array literal assertion modes |
@typescript-eslint/consistent-type-definitions | Implemented for interface and type configurations |
@typescript-eslint/dot-notation | Implemented with autofix through the core rule |
@typescript-eslint/explicit-member-accessibility | Supports accessibility: "no-public", "explicit", and "off" |
@typescript-eslint/member-ordering | Implemented for fishlint's default class member ordering |
@typescript-eslint/method-signature-style | Implemented for fishlint's property configuration |
@typescript-eslint/no-array-constructor | Implemented with argument-preserving, ASI-safe autofix |
@typescript-eslint/no-confusing-non-null-assertion | Implemented |
@typescript-eslint/no-dupe-class-members | Implemented |
@typescript-eslint/no-empty-function | Supports base allow kinds plus private-constructors, protected-constructors, decoratedFunctions, and overrideMethods configuration |
@typescript-eslint/no-empty-interface | Supports allowSingleExtends configuration |
@typescript-eslint/no-empty-object-type | Supports allowInterfaces, allowObjectTypes, and common anchored allowWithName patterns; excludes empty object constituents in intersection types |
@typescript-eslint/no-duplicate-enum-values | Implemented |
@typescript-eslint/no-extra-semi | Implemented with autofix |
@typescript-eslint/no-extra-non-null-assertion | Implemented |
@typescript-eslint/no-explicit-any | Opt-in; supports ignoreRestArgs, fixToUnknown, and editor suggestions for unknown and never |
@typescript-eslint/no-inferrable-types | Supports ignoreParameters and ignoreProperties configuration ; supports safe autofixes with comment preservation |
@typescript-eslint/no-invalid-void-type | Supports allowAsThisParameter and boolean/string-list allowInGenericTypeArguments configuration |
@typescript-eslint/no-loop-func | Implemented for TypeScript loop captures with core no-loop-func fallback when disabled |
@typescript-eslint/no-loss-of-precision | Implemented |
@typescript-eslint/no-misused-new | Implemented |
@typescript-eslint/no-namespace | Implemented for allowDeclarations and allowDefinitionFiles configurations |
@typescript-eslint/no-non-null-asserted-optional-chain | Implemented |
@typescript-eslint/no-redeclare | Supports builtinGlobals and ignoreDeclarationMerge configuration |
@typescript-eslint/no-require-imports | Supports allow and allowAsImport configuration |
@typescript-eslint/no-shadow | Supports allow, builtinGlobals, hoist, ignoreOnInitialization, ignoreTypeValueShadow, and ignoreFunctionTypeParameterNameValueShadow configuration |
@typescript-eslint/no-this-alias | Supports allowedNames and allowDestructuring configuration |
@typescript-eslint/no-unsafe-declaration-merging | Implemented |
@typescript-eslint/no-unsafe-function-type | Reports unshadowed global Function references in type annotations, interface heritage, and class implements clauses |
@typescript-eslint/triple-slash-reference | Implemented for path, types, and lib always/never configurations |
@typescript-eslint/typedef | Supports propertyDeclaration, memberVariableDeclaration, parameter, arrowParameter, arrayDestructuring, objectDestructuring, variableDeclaration, and variableDeclarationIgnoreFunction configuration |
@typescript-eslint/unified-signatures | Implemented |
@typescript-eslint/no-unnecessary-parameter-property-assignment | Implemented for constructor assignments in the constructor body |
@typescript-eslint/no-unnecessary-type-constraint | Implemented |
@typescript-eslint/no-useless-constructor | Implemented |
@typescript-eslint/no-useless-empty-export | Implemented |
@typescript-eslint/no-unused-expressions | Supports allowShortCircuit, allowTernary, and allowTaggedTemplates configuration |
@typescript-eslint/no-unused-vars | Supports vars, args, caughtErrors, ignoreRestSiblings, ignoreClassWithStaticInitBlock, ignoreUsingDeclarations, reportUsedIgnorePattern, and common argsIgnorePattern/caughtErrorsIgnorePattern/destructuredArrayIgnorePattern/varsIgnorePattern configuration |
@typescript-eslint/no-use-before-define | Supports functions, classes, variables, typedefs, enums, allowNamedExports, and ignoreTypeReferences configuration |
@typescript-eslint/no-var-requires | Implemented |
@typescript-eslint/no-wrapper-object-types | Implemented |
@typescript-eslint/prefer-as-const | Implemented ; supports safe autofixes with comment preservation |
@typescript-eslint/prefer-namespace-keyword | Implemented |
@typescript-eslint/restrict-plus-operands | Supports allowNumberAndString, allowAny, and skipCompoundAssignments; recognizes primitive annotations, local return signatures, direct generic parameter inference, and array elements |