Skip to content

Commit 768e715

Browse files
Jonathan Meieratscott
authored andcommitted
refactor(compiler-cli): remove unused transform methods from DtsTransform (angular#61610)
All usages of the `DtsTransform` interface leave these two methods `undefined`, so we can remove them, as well as all code invoking them. PR Close angular#61610
1 parent 6899b27 commit 768e715

File tree

2 files changed

+1
-59
lines changed

2 files changed

+1
-59
lines changed

packages/compiler-cli/src/ngtsc/transform/src/api.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -288,11 +288,6 @@ export interface ResolveResult<R> {
288288
}
289289

290290
export interface DtsTransform {
291-
transformClassElement?(element: ts.ClassElement, imports: ImportManager): ts.ClassElement;
292-
transformFunctionDeclaration?(
293-
element: ts.FunctionDeclaration,
294-
imports: ImportManager,
295-
): ts.FunctionDeclaration;
296291
transformClass?(
297292
clazz: ts.ClassDeclaration,
298293
elements: ReadonlyArray<ts.ClassElement>,

packages/compiler-cli/src/ngtsc/transform/src/declaration.ts

Lines changed: 1 addition & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,6 @@ class DtsTransformer {
101101
const visitor: ts.Visitor = (node: ts.Node): ts.VisitResult<ts.Node> => {
102102
if (ts.isClassDeclaration(node)) {
103103
return this.transformClassDeclaration(node, transforms, imports);
104-
} else if (ts.isFunctionDeclaration(node)) {
105-
return this.transformFunctionDeclaration(node, transforms, imports);
106104
} else {
107105
// Otherwise return node as is.
108106
return ts.visitEachChild(node, visitor, this.ctx);
@@ -121,73 +119,22 @@ class DtsTransformer {
121119
transforms: DtsTransform[],
122120
imports: ImportManager,
123121
): ts.ClassDeclaration {
124-
let elements: ts.ClassElement[] | ReadonlyArray<ts.ClassElement> = clazz.members;
125-
let elementsChanged = false;
126-
127-
for (const transform of transforms) {
128-
if (transform.transformClassElement !== undefined) {
129-
for (let i = 0; i < elements.length; i++) {
130-
const res = transform.transformClassElement(elements[i], imports);
131-
if (res !== elements[i]) {
132-
if (!elementsChanged) {
133-
elements = [...elements];
134-
elementsChanged = true;
135-
}
136-
(elements as ts.ClassElement[])[i] = res;
137-
}
138-
}
139-
}
140-
}
141-
142122
let newClazz: ts.ClassDeclaration = clazz;
143123

144124
for (const transform of transforms) {
145125
if (transform.transformClass !== undefined) {
146-
// If no DtsTransform has changed the class yet, then the (possibly mutated) elements have
147-
// not yet been incorporated. Otherwise, `newClazz.members` holds the latest class members.
148-
const inputMembers = clazz === newClazz ? elements : newClazz.members;
149-
150126
newClazz = transform.transformClass(
151127
newClazz,
152-
inputMembers,
128+
newClazz.members,
153129
this.reflector,
154130
this.refEmitter,
155131
imports,
156132
);
157133
}
158134
}
159135

160-
// If some elements have been transformed but the class itself has not been transformed, create
161-
// an updated class declaration with the updated elements.
162-
if (elementsChanged && clazz === newClazz) {
163-
newClazz = ts.factory.updateClassDeclaration(
164-
/* node */ clazz,
165-
/* modifiers */ clazz.modifiers,
166-
/* name */ clazz.name,
167-
/* typeParameters */ clazz.typeParameters,
168-
/* heritageClauses */ clazz.heritageClauses,
169-
/* members */ elements,
170-
);
171-
}
172-
173136
return newClazz;
174137
}
175-
176-
private transformFunctionDeclaration(
177-
declaration: ts.FunctionDeclaration,
178-
transforms: DtsTransform[],
179-
imports: ImportManager,
180-
): ts.FunctionDeclaration {
181-
let newDecl = declaration;
182-
183-
for (const transform of transforms) {
184-
if (transform.transformFunctionDeclaration !== undefined) {
185-
newDecl = transform.transformFunctionDeclaration(newDecl, imports);
186-
}
187-
}
188-
189-
return newDecl;
190-
}
191138
}
192139

193140
export interface IvyDeclarationField {

0 commit comments

Comments
 (0)