fix(50416): correctly names disabled export refactors (#50663)

* added test case to try to retrieve duplicate refactor as in #50416. 'verify.refactorAvailable' correctly retrieves nonduplicate refactors...

* optional arguments in refactorAvailable return `true` even if there is no single refactor that satisfies both

* it still passes :C

* Delete fixExtractToInnerFunctionDuplicaton.ts

* deleted extra test code

* fix 'verify.refactorAvailable' so that tests correctly check for multiple arguments

* fixes #50416

* refactor
This commit is contained in:
Isabel Duan
2022-10-13 16:44:30 -07:00
committed by GitHub
parent 2bcfed01f3
commit 2cb7e779d7
3 changed files with 28 additions and 5 deletions

View File

@@ -69,8 +69,8 @@ namespace ts.refactor.extractSymbol {
let i = 0;
for (const { functionExtraction, constantExtraction } of extractions) {
const description = functionExtraction.description;
if (refactorKindBeginsWith(extractFunctionAction.kind, requestedRefactor)) {
const description = functionExtraction.description;
if (functionExtraction.errors.length === 0) {
// Don't issue refactorings with duplicated names.
// Scopes come back in "innermost first" order, so extractions will
@@ -95,11 +95,11 @@ namespace ts.refactor.extractSymbol {
}
if (refactorKindBeginsWith(extractConstantAction.kind, requestedRefactor)) {
const description = constantExtraction.description;
if (constantExtraction.errors.length === 0) {
// Don't issue refactorings with duplicated names.
// Scopes come back in "innermost first" order, so extractions will
// preferentially go into nearer scopes
const description = constantExtraction.description;
if (!usedConstantNames.has(description)) {
usedConstantNames.set(description, true);
constantActions.push({