Skip to content

Commit b1358db

Browse files
Clone properties prior to constructing accessors so they don't get shared and stomped on.
1 parent 20432a6 commit b1358db

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/services/codefixes/helpers.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,21 +124,21 @@ namespace ts.codefix {
124124
for (const accessor of orderedAccessors) {
125125
if (isGetAccessorDeclaration(accessor)) {
126126
addClassElement(factory.createGetAccessorDeclaration(
127-
modifiers,
128-
name,
127+
getSynthesizedDeepClones(modifiers),
128+
getSynthesizedDeepClone(name),
129129
emptyArray,
130-
typeNode,
131-
ambient ? undefined : body || createStubbedMethodBody(quotePreference)));
130+
getSynthesizedDeepClone(typeNode),
131+
ambient ? undefined : createStubbedMethodBody(quotePreference)));
132132
}
133133
else {
134134
Debug.assertNode(accessor, isSetAccessorDeclaration, "The counterpart to a getter should be a setter");
135135
const parameter = getSetAccessorValueParameter(accessor);
136136
const parameterName = parameter && isIdentifier(parameter.name) ? idText(parameter.name) : undefined;
137137
addClassElement(factory.createSetAccessorDeclaration(
138-
modifiers,
139-
name,
140-
createDummyParameters(1, [parameterName], [typeNode], 1, /*inJs*/ false),
141-
ambient ? undefined : body || createStubbedMethodBody(quotePreference)));
138+
getSynthesizedDeepClones(modifiers),
139+
getSynthesizedDeepClone(name),
140+
createDummyParameters(1, [parameterName], [getSynthesizedDeepClone(typeNode)], 1, /*inJs*/ false),
141+
ambient ? undefined : createStubbedMethodBody(quotePreference)));
142142
}
143143
}
144144
break;

0 commit comments

Comments
 (0)