From b1358db5d1b6cf73ca97a1d7e3577e45e5eae303 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Fri, 26 Aug 2022 07:35:48 +0000 Subject: [PATCH] Clone properties prior to constructing accessors so they don't get shared and stomped on. --- src/services/codefixes/helpers.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/services/codefixes/helpers.ts b/src/services/codefixes/helpers.ts index 2f6e4f06796..b09c4ac334b 100644 --- a/src/services/codefixes/helpers.ts +++ b/src/services/codefixes/helpers.ts @@ -124,21 +124,21 @@ namespace ts.codefix { for (const accessor of orderedAccessors) { if (isGetAccessorDeclaration(accessor)) { addClassElement(factory.createGetAccessorDeclaration( - modifiers, - name, + getSynthesizedDeepClones(modifiers), + getSynthesizedDeepClone(name), emptyArray, - typeNode, - ambient ? undefined : body || createStubbedMethodBody(quotePreference))); + getSynthesizedDeepClone(typeNode), + ambient ? undefined : createStubbedMethodBody(quotePreference))); } else { Debug.assertNode(accessor, isSetAccessorDeclaration, "The counterpart to a getter should be a setter"); const parameter = getSetAccessorValueParameter(accessor); const parameterName = parameter && isIdentifier(parameter.name) ? idText(parameter.name) : undefined; addClassElement(factory.createSetAccessorDeclaration( - modifiers, - name, - createDummyParameters(1, [parameterName], [typeNode], 1, /*inJs*/ false), - ambient ? undefined : body || createStubbedMethodBody(quotePreference))); + getSynthesizedDeepClones(modifiers), + getSynthesizedDeepClone(name), + createDummyParameters(1, [parameterName], [getSynthesizedDeepClone(typeNode)], 1, /*inJs*/ false), + ambient ? undefined : createStubbedMethodBody(quotePreference))); } } break;