From b783b1e11fb18bde68f7c5071da268eafd553630 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Fri, 7 Apr 2023 23:58:00 -0400 Subject: [PATCH] fix(eslint-plugin) [member-ordering] account for repeated names --- .../src/rules/member-ordering.ts | 4 ++ .../tests/rules/member-ordering.test.ts | 47 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/packages/eslint-plugin/src/rules/member-ordering.ts b/packages/eslint-plugin/src/rules/member-ordering.ts index cadd1023058..a3adca031d7 100644 --- a/packages/eslint-plugin/src/rules/member-ordering.ts +++ b/packages/eslint-plugin/src/rules/member-ordering.ts @@ -811,6 +811,10 @@ export default util.createRule({ previousName: string, order: AlphabeticalOrder, ): boolean { + if (name === previousName) { + return false; + } + switch (order) { case 'alphabetically': return name < previousName; diff --git a/packages/eslint-plugin/tests/rules/member-ordering.test.ts b/packages/eslint-plugin/tests/rules/member-ordering.test.ts index 89f499d697b..d183c698e20 100644 --- a/packages/eslint-plugin/tests/rules/member-ordering.test.ts +++ b/packages/eslint-plugin/tests/rules/member-ordering.test.ts @@ -2007,6 +2007,53 @@ interface Foo { }, ], }, + // https://github.com/typescript-eslint/typescript-eslint/issues/6812 + { + code: ` +class Foo { + #bar: string; + + get bar(): string { + return this.#bar; + } + + set bar(value: string) { + this.#bar = value; + } +} + `, + options: [ + { + default: { + memberTypes: [['get', 'set']], + order: 'alphabetically', + }, + }, + ], + }, + { + code: ` +class Foo { + #bar: string; + + get bar(): string { + return this.#bar; + } + + set bar(value: string) { + this.#bar = value; + } +} + `, + options: [ + { + default: { + memberTypes: [['get', 'set']], + order: 'natural', + }, + }, + ], + }, ], invalid: [ {