From d207b59e24acb9377a7a55104d082bd91fbb664e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?= Date: Tue, 18 Jul 2023 06:45:03 -0400 Subject: [PATCH] fix(eslint-plugin): [member-ordering] account for repeated names (#6864) Co-authored-by: Brad Zacher --- .../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 29b748e88cf..f7ad60c58fe 100644 --- a/packages/eslint-plugin/src/rules/member-ordering.ts +++ b/packages/eslint-plugin/src/rules/member-ordering.ts @@ -800,6 +800,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 9e8dda8b778..b947d8a5a1e 100644 --- a/packages/eslint-plugin/tests/rules/member-ordering.test.ts +++ b/packages/eslint-plugin/tests/rules/member-ordering.test.ts @@ -2008,6 +2008,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: [ {