mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-16 06:35:35 -05:00
Merge pull request #27964 from Igorbek/issue27854
Fix bug in reduceEachChild for tagged template expressions
This commit is contained in:
@@ -1111,6 +1111,7 @@ namespace ts {
|
||||
|
||||
case SyntaxKind.TaggedTemplateExpression:
|
||||
result = reduceNode((<TaggedTemplateExpression>node).tag, cbNode, result);
|
||||
result = reduceNodes((<TaggedTemplateExpression>node).typeArguments, cbNodes, result);
|
||||
result = reduceNode((<TaggedTemplateExpression>node).template, cbNode, result);
|
||||
break;
|
||||
|
||||
|
||||
@@ -40,6 +40,16 @@ namespace ts {
|
||||
return (file: SourceFile) => file;
|
||||
}
|
||||
|
||||
function replaceIdentifiersNamedOldNameWithNewName2(context: TransformationContext) {
|
||||
const visitor: Visitor = (node) => {
|
||||
if (isIdentifier(node) && node.text === "oldName") {
|
||||
return createIdentifier("newName");
|
||||
}
|
||||
return visitEachChild(node, visitor, context);
|
||||
};
|
||||
return (node: SourceFile) => visitNode(node, visitor);
|
||||
}
|
||||
|
||||
function transformSourceFile(sourceText: string, transformers: TransformerFactory<SourceFile>[]) {
|
||||
const transformed = transform(createSourceFile("source.ts", sourceText, ScriptTarget.ES2015), transformers);
|
||||
const printer = createPrinter({ newLine: NewLineKind.CarriageReturnLineFeed }, {
|
||||
@@ -81,6 +91,18 @@ namespace ts {
|
||||
}).outputText;
|
||||
});
|
||||
|
||||
testBaseline("issue27854", () => {
|
||||
return transpileModule(`oldName<{ a: string; }>\` ... \`;`, {
|
||||
transformers: {
|
||||
before: [replaceIdentifiersNamedOldNameWithNewName2]
|
||||
},
|
||||
compilerOptions: {
|
||||
newLine: NewLineKind.CarriageReturnLineFeed,
|
||||
target: ScriptTarget.Latest
|
||||
}
|
||||
}).outputText;
|
||||
});
|
||||
|
||||
testBaseline("rewrittenNamespace", () => {
|
||||
return transpileModule(`namespace Reflect { const x = 1; }`, {
|
||||
transformers: {
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
newName ` ... `;
|
||||
Reference in New Issue
Block a user