@@ -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)";
0 commit comments