Skip to content

Bug: Error while loading rule '@typescript-eslint/no-unused-expressions' #19134

@glass-ships

Description

@glass-ships

Environment

Node version: 23.1.0
npm version: using bun, 1.1.34
Local ESLint version: 9.15.0
Global ESLint version:
Operating System: Ubuntu 24.04

What parser are you using?

Default (Espree)

What did you do?

Configuration
import { FlatCompat } from "@eslint/eslintrc";
import js from "@eslint/js";
import prettierConfig from "@vue/eslint-config-prettier";
import vueTsEslintConfig from "@vue/eslint-config-typescript";
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
import pluginVue from "eslint-plugin-vue";
import url from "url";

const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
const compat = new FlatCompat({
  baseDirectory: __dirname,
  recommendedConfig: js.configs.recommended,
  // allConfig: js.configs.all,
});

export default [
  /** Extend recommended configs */
  ...compat.extends("plugin:vue/vue3-recommended", "plugin:vuejs-accessibility/recommended", "prettier"),
  ...pluginVue.configs["flat/recommended"],
  ...vueTsEslintConfig(),
  eslintPluginPrettierRecommended,
  prettierConfig,
  /** Configuration */
  {
    languageOptions: {
      parserOptions: {
        ecmaVersion: "latest",
        sourceType: "script",
      },
    },
    files: ["src/**/*.js", "src/**/*.mjs", "src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"],
    /** Override rules */
    rules: {
      "max-len": ["error", { code: 120 }],
      "prefer-const": 0,
      "@typescript-eslint/ban-ts-comment": ["error", { "ts-ignore": "allow-with-description" }],
      "@typescript-eslint/no-explicit-any": "off",
      "prettier/prettier": [
        "warn",
        {},
        {
          usePrettierrc: true,
        },
      ],
      "vuejs-accessibility/label-has-for": [
        "error",
        {
          required: {
            some: ["nesting", "id"],
          },
        },
      ],
    },
  },
];

Configured as above, then ran:

eslint src

What did you expect to happen?

Expected linting to run

What actually happened?

$ eslint src

Oops! Something went wrong! :(

ESLint: 9.15.0

TypeError: Error while loading rule '@typescript-eslint/no-unused-expressions': Cannot read properties of undefined (reading 'allowShortCircuit')

Link to Minimal Reproducible Example

https://github.com/reflectometry/refl1d/tree/lint-frontend/refl1d/webview/client

Participation

  • I am willing to submit a pull request for this issue.

Additional comments

This seems to have been introduced in 9.15.0, as if i downgrade eslint to 9.14.0, everything works as expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    3rd party pluginThis is an issue related to a 3rd party plugin, config, or parserbugESLint is working incorrectlyrepro:yesIssues with a reproducible example

    Type

    No type

    Projects

    Status

    Complete

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions