Skip to content

New false positives in 5.4.0 for functions that aren't ESLint rules #450

Closed
@JoshuaKGoldberg

Description

@JoshuaKGoldberg

typescript-eslint/typescript-eslint#8574 attempts to upgrade eslint-plugin-eslint-plugin from 5.3.0 -> 5.4.0. It has the following new failures:

/home/runner/work/typescript-eslint/typescript-eslint/packages/eslint-plugin/tests/RuleTester.ts
  43:8  error  `meta.messages` must contain at least one violation message                    eslint-plugin/prefer-message-ids
  43:8  error  Rules should be declared using the object style                                eslint-plugin/prefer-object-rule
  43:8  error  `meta.type` is required (must be either `problem`, `suggestion`, or `layout`)  eslint-plugin/require-meta-type
  43:8  error  `meta.schema` is required (use [] if rule has no schema)                       eslint-plugin/require-meta-schema

/home/runner/work/typescript-eslint/typescript-eslint/packages/eslint-plugin/tests/rules/naming-convention/cases/createTestCases.ts
  85:8  error  `meta.messages` must contain at least one violation message                    eslint-plugin/prefer-message-ids
  85:8  error  Rules should be declared using the object style                                eslint-plugin/prefer-object-rule
  85:8  error  `meta.type` is required (must be either `problem`, `suggestion`, or `layout`)  eslint-plugin/require-meta-type
  85:8  error  `meta.schema` is required (use [] if rule has no schema)                       eslint-plugin/require-meta-schema

/home/runner/work/typescript-eslint/typescript-eslint/packages/eslint-plugin/tests/rules/prefer-optional-chain/base-cases.ts
  232:43  error  `meta.messages` must contain at least one violation message                    eslint-plugin/prefer-message-ids
  232:43  error  Rules should be declared using the object style                                eslint-plugin/prefer-object-rule
  232:43  error  `meta.type` is required (must be either `problem`, `suggestion`, or `layout`)  eslint-plugin/require-meta-type
  232:43  error  `meta.schema` is required (use [] if rule has no schema)                       eslint-plugin/require-meta-schema

None of those three flagged code constructs should be reported on:

  • tests/RuleTester.ts: export function batchedSingleLineTests
  • naming-convention/cases/createTestCases.ts: export function createTestCases(cases: Cases): void {
  • prefer-optional-chain/base-cases.ts: export const BaseCases: BaseCaseCreator = ({

It looks like the detection for what is an ESLint rule might be overly permissive?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions