Skip to content

Commit

Permalink
fix(58259): getTextOfJSDocComment is stripping # from JSDoc comment (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
a-tarasyuk committed May 1, 2024
1 parent 62c41f8 commit 66dd12e
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/compiler/utilities.ts
Expand Up @@ -2123,7 +2123,7 @@ export function entityNameToString(name: EntityNameOrEntityNameExpression | JSDo
return Debug.assertNever(name.name);
}
case SyntaxKind.JSDocMemberName:
return entityNameToString(name.left) + entityNameToString(name.right);
return entityNameToString(name.left) + "#" + entityNameToString(name.right);
case SyntaxKind.JsxNamespacedName:
return entityNameToString(name.namespace) + ":" + entityNameToString(name.name);
default:
Expand Down
17 changes: 17 additions & 0 deletions src/testRunner/unittests/jsDocParsing.ts
Expand Up @@ -543,4 +543,21 @@ oh.no
assert.equal((doc?.jsDoc.tags?.[0] as ts.JSDocTemplateTag).typeParameters.length, 0);
});
});
describe("getTextOfJSDocComment", () => {
it("should preserve hash in string representation of JsDocMemberName", () => {
const sourceText = `
/**
*
* @see {@link foo#bar label}
*/
class Foo {};
`;

const root = ts.createSourceFile("foo.ts", sourceText, ts.ScriptTarget.ES5, /*setParentNodes*/ true);
const [classDecl] = root.statements;
const [seeTag] = ts.getJSDocTags(classDecl);

assert.equal(ts.getTextOfJSDocComment(seeTag.comment), "{@link foo#bar label}");
});
});
});

0 comments on commit 66dd12e

Please sign in to comment.