Skip to content

Commit 91cb068

Browse files
committed
Avoid document comment map
1 parent efbf539 commit 91cb068

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

src/services/services.ts

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -283,10 +283,10 @@ namespace ts {
283283
}
284284
}
285285

286-
enum ContextualDocumentationType {
287-
None = "None",
288-
GetAccessor = "GetAccessor",
289-
SetAccessor = "SetAccessor"
286+
const enum ContextualDocumentationType {
287+
None,
288+
GetAccessor,
289+
SetAccessor
290290
}
291291

292292
class SymbolObject implements Symbol {
@@ -299,7 +299,8 @@ namespace ts {
299299
// symbol has no doc comment, then the empty array will be returned.
300300
documentationComment?: SymbolDisplayPart[];
301301

302-
contextualDocumentationComment?: Map<SymbolDisplayPart[]>;
302+
contextualGetAccessorDocumentationComment?: SymbolDisplayPart[];
303+
contextualSetAccessorDocumentationComment?: SymbolDisplayPart[];
303304

304305
// Undefined is used to indicate the value has not been computed. If, after computing, the
305306
// symbol has no JSDoc tags, then the empty array will be returned.
@@ -341,24 +342,22 @@ namespace ts {
341342
getContextualDocumentationComment(context: Node | undefined, checker: TypeChecker | undefined): SymbolDisplayPart[] {
342343
switch (context?.kind) {
343344
case SyntaxKind.GetAccessor:
344-
return this.getContextualDocumentationCommentCached(ContextualDocumentationType.GetAccessor, filter(this.declarations, isGetAccessor), checker);
345+
if (!this.contextualGetAccessorDocumentationComment) {
346+
this.contextualGetAccessorDocumentationComment = emptyArray;
347+
this.contextualGetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isGetAccessor), checker);
348+
}
349+
return this.contextualGetAccessorDocumentationComment
345350
case SyntaxKind.SetAccessor:
346-
return this.getContextualDocumentationCommentCached(ContextualDocumentationType.SetAccessor, filter(this.declarations, isSetAccessor), checker);
351+
if (!this.contextualSetAccessorDocumentationComment) {
352+
this.contextualSetAccessorDocumentationComment = emptyArray;
353+
this.contextualSetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isSetAccessor), checker);
354+
}
355+
return this.contextualSetAccessorDocumentationComment
347356
default:
348357
return this.getDocumentationComment(checker);
349358
}
350359
}
351360

352-
getContextualDocumentationCommentCached(type: ContextualDocumentationType, declarations: Declaration[], checker: TypeChecker | undefined): SymbolDisplayPart[] {
353-
if (!this.contextualDocumentationComment) {
354-
this.contextualDocumentationComment = createMultiMap<SymbolDisplayPart>();
355-
}
356-
if (!this.contextualDocumentationComment.has(type)) {
357-
this.contextualDocumentationComment.set(type, getDocumentationComment(declarations, checker));
358-
}
359-
return this.contextualDocumentationComment.get(type)!;
360-
}
361-
362361
getJsDocTags(): JSDocTagInfo[] {
363362
if (this.tags === undefined) {
364363
this.tags = JsDoc.getJsDocTagsFromDeclarations(this.declarations);

0 commit comments

Comments
 (0)