Skip to content

Commit f7d8081

Browse files
author
Andy
authored
Unify duplicate getNameOfSymbol functions (#18618)
1 parent 7e002ae commit f7d8081

File tree

2 files changed

+16
-37
lines changed

2 files changed

+16
-37
lines changed

src/compiler/checker.ts

Lines changed: 13 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2425,15 +2425,6 @@ namespace ts {
24252425
}
24262426
};
24272427

2428-
interface NodeBuilderContext {
2429-
enclosingDeclaration: Node | undefined;
2430-
flags: NodeBuilderFlags | undefined;
2431-
2432-
// State
2433-
encounteredError: boolean;
2434-
symbolStack: Symbol[] | undefined;
2435-
}
2436-
24372428
function createNodeBuilderContext(enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): NodeBuilderContext {
24382429
return {
24392430
enclosingDeclaration,
@@ -3027,30 +3018,6 @@ namespace ts {
30273018
}
30283019
}
30293020
}
3030-
3031-
function getNameOfSymbol(symbol: Symbol, context: NodeBuilderContext): string {
3032-
const declaration = firstOrUndefined(symbol.declarations);
3033-
if (declaration) {
3034-
const name = getNameOfDeclaration(declaration);
3035-
if (name) {
3036-
return declarationNameToString(name);
3037-
}
3038-
if (declaration.parent && declaration.parent.kind === SyntaxKind.VariableDeclaration) {
3039-
return declarationNameToString((<VariableDeclaration>declaration.parent).name);
3040-
}
3041-
if (!context.encounteredError && !(context.flags & NodeBuilderFlags.AllowAnonymousIdentifier)) {
3042-
context.encounteredError = true;
3043-
}
3044-
switch (declaration.kind) {
3045-
case SyntaxKind.ClassExpression:
3046-
return "(Anonymous class)";
3047-
case SyntaxKind.FunctionExpression:
3048-
case SyntaxKind.ArrowFunction:
3049-
return "(Anonymous function)";
3050-
}
3051-
}
3052-
return unescapeLeadingUnderscores(symbol.escapedName);
3053-
}
30543021
}
30553022

30563023
function typePredicateToString(typePredicate: TypePredicate, enclosingDeclaration?: Declaration, flags?: TypeFormatFlags): string {
@@ -3115,7 +3082,16 @@ namespace ts {
31153082
return type.flags & TypeFlags.StringLiteral ? '"' + escapeString((<StringLiteralType>type).value) + '"' : "" + (<NumberLiteralType>type).value;
31163083
}
31173084

3118-
function getNameOfSymbol(symbol: Symbol): string {
3085+
interface NodeBuilderContext {
3086+
enclosingDeclaration: Node | undefined;
3087+
flags: NodeBuilderFlags | undefined;
3088+
3089+
// State
3090+
encounteredError: boolean;
3091+
symbolStack: Symbol[] | undefined;
3092+
}
3093+
3094+
function getNameOfSymbol(symbol: Symbol, context?: NodeBuilderContext): string {
31193095
if (symbol.declarations && symbol.declarations.length) {
31203096
const declaration = symbol.declarations[0];
31213097
const name = getNameOfDeclaration(declaration);
@@ -3125,6 +3101,9 @@ namespace ts {
31253101
if (declaration.parent && declaration.parent.kind === SyntaxKind.VariableDeclaration) {
31263102
return declarationNameToString((<VariableDeclaration>declaration.parent).name);
31273103
}
3104+
if (context && !context.encounteredError && !(context.flags & NodeBuilderFlags.AllowAnonymousIdentifier)) {
3105+
context.encounteredError = true;
3106+
}
31283107
switch (declaration.kind) {
31293108
case SyntaxKind.ClassExpression:
31303109
return "(Anonymous class)";
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
=== tests/cases/compiler/declarationQuotedMembers.ts ===
22
export declare const mapped: { [K in 'a-b-c']: number }
3-
>mapped : { a-b-c: number; }
3+
>mapped : { "a-b-c": number; }
44
>K : K
55

66
export const example = mapped;
7-
>example : { a-b-c: number; }
8-
>mapped : { a-b-c: number; }
7+
>example : { "a-b-c": number; }
8+
>mapped : { "a-b-c": number; }
99

0 commit comments

Comments
 (0)