Skip to content

Commit 67b644e

Browse files
authored
Export internal functions needed by dtsBundler.mjs (#52941)
1 parent 1717826 commit 67b644e

File tree

11 files changed

+64
-63
lines changed

11 files changed

+64
-63
lines changed

src/compiler/checker.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -875,7 +875,6 @@ import {
875875
NonNullExpression,
876876
not,
877877
noTruncationMaximumTruncationLength,
878-
nullTransformationContext,
879878
NumberLiteralType,
880879
NumericLiteral,
881880
objectAllocator,
@@ -2365,7 +2364,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
23652364

23662365
function markAsSynthetic<T extends Node>(node: T): VisitResult<T> {
23672366
setTextRangePosEnd(node, -1, -1);
2368-
return visitEachChild(node, markAsSynthetic, nullTransformationContext);
2367+
return visitEachChild(node, markAsSynthetic, /*context*/ undefined);
23692368
}
23702369

23712370
function getEmitResolver(sourceFile: SourceFile, cancellationToken: CancellationToken) {
@@ -7032,7 +7031,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
70327031
if (!nodeIsSynthesized(node) && getParseTreeNode(node) === node) {
70337032
return node;
70347033
}
7035-
return setTextRange(factory.cloneNode(visitEachChild(node, deepCloneOrReuseNode, nullTransformationContext, deepCloneOrReuseNodes)), node);
7034+
return setTextRange(factory.cloneNode(visitEachChild(node, deepCloneOrReuseNode, /*context*/ undefined, deepCloneOrReuseNodes)), node);
70367035
}
70377036

70387037
function deepCloneOrReuseNodes(
@@ -7826,7 +7825,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
78267825
if (context.tracker.canTrackSymbol && isComputedPropertyName(node) && isLateBindableName(node)) {
78277826
trackComputedName(node.expression, context.enclosingDeclaration, context);
78287827
}
7829-
let visited = visitEachChild(node, elideInitializerAndSetEmitFlags, nullTransformationContext, /*nodesVisitor*/ undefined, elideInitializerAndSetEmitFlags)!;
7828+
let visited = visitEachChild(node, elideInitializerAndSetEmitFlags, /*context*/ undefined, /*nodesVisitor*/ undefined, elideInitializerAndSetEmitFlags)!;
78307829
if (isBindingElement(visited)) {
78317830
visited = factory.updateBindingElement(
78327831
visited,
@@ -8663,7 +8662,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
86638662
setEmitFlags(node, EmitFlags.SingleLine);
86648663
}
86658664

8666-
return visitEachChild(node, visitExistingNodeTreeSymbols, nullTransformationContext);
8665+
return visitEachChild(node, visitExistingNodeTreeSymbols, /*context*/ undefined);
86678666

86688667
function getEffectiveDotDotDotForParameter(p: ParameterDeclaration) {
86698668
return p.dotDotDotToken || (p.type && isJSDocVariadicType(p.type) ? factory.createToken(SyntaxKind.DotDotDotToken) : undefined);

src/compiler/transformers/declarations.ts

+1-35
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import {
1414
canHaveModifiers,
1515
canProduceDiagnostics,
1616
ClassDeclaration,
17-
CommentRange,
1817
compact,
1918
concatenate,
2019
ConditionalTypeNode,
@@ -63,8 +62,6 @@ import {
6362
getExternalModuleImportEqualsDeclarationExpression,
6463
getExternalModuleNameFromDeclaration,
6564
getFirstConstructorWithBody,
66-
getLeadingCommentRanges,
67-
getLeadingCommentRangesOfNode,
6865
getLineAndCharacterOfPosition,
6966
getNameOfDeclaration,
7067
getNormalizedAbsolutePath,
@@ -80,7 +77,6 @@ import {
8077
GetSymbolAccessibilityDiagnostic,
8178
getTextOfNode,
8279
getThisParameter,
83-
getTrailingCommentRanges,
8480
hasDynamicName,
8581
hasEffectiveModifier,
8682
hasExtension,
@@ -126,6 +122,7 @@ import {
126122
isImportEqualsDeclaration,
127123
isIndexSignatureDeclaration,
128124
isInterfaceDeclaration,
125+
isInternalDeclaration,
129126
isJsonSourceFile,
130127
isLateVisibilityPaintedStatement,
131128
isLiteralImportTypeNode,
@@ -158,7 +155,6 @@ import {
158155
isVariableDeclaration,
159156
isVarUsing,
160157
JSDocFunctionType,
161-
last,
162158
LateBoundDeclaration,
163159
LateVisibilityPaintedStatement,
164160
length,
@@ -202,7 +198,6 @@ import {
202198
setParent,
203199
setTextRange,
204200
SignatureDeclaration,
205-
skipTrivia,
206201
some,
207202
SourceFile,
208203
startsWith,
@@ -243,35 +238,6 @@ export function getDeclarationDiagnostics(host: EmitHost, resolver: EmitResolver
243238
return result.diagnostics;
244239
}
245240

246-
function hasInternalAnnotation(range: CommentRange, currentSourceFile: SourceFile) {
247-
const comment = currentSourceFile.text.substring(range.pos, range.end);
248-
return comment.includes("@internal");
249-
}
250-
251-
/** @internal */
252-
export function isInternalDeclaration(node: Node, currentSourceFile: SourceFile) {
253-
const parseTreeNode = getParseTreeNode(node);
254-
if (parseTreeNode && parseTreeNode.kind === SyntaxKind.Parameter) {
255-
const paramIdx = (parseTreeNode.parent as SignatureDeclaration).parameters.indexOf(parseTreeNode as ParameterDeclaration);
256-
const previousSibling = paramIdx > 0 ? (parseTreeNode.parent as SignatureDeclaration).parameters[paramIdx - 1] : undefined;
257-
const text = currentSourceFile.text;
258-
const commentRanges = previousSibling
259-
? concatenate(
260-
// to handle
261-
// ... parameters, /** @internal */
262-
// public param: string
263-
getTrailingCommentRanges(text, skipTrivia(text, previousSibling.end + 1, /*stopAfterLineBreak*/ false, /*stopAtComments*/ true)),
264-
getLeadingCommentRanges(text, node.pos),
265-
)
266-
: getTrailingCommentRanges(text, skipTrivia(text, node.pos, /*stopAfterLineBreak*/ false, /*stopAtComments*/ true));
267-
return commentRanges && commentRanges.length && hasInternalAnnotation(last(commentRanges), currentSourceFile);
268-
}
269-
const leadingCommentRanges = parseTreeNode && getLeadingCommentRangesOfNode(parseTreeNode, currentSourceFile);
270-
return !!forEach(leadingCommentRanges, range => {
271-
return hasInternalAnnotation(range, currentSourceFile);
272-
});
273-
}
274-
275241
const declarationEmitNodeBuilderFlags = NodeBuilderFlags.MultilineObjectLiterals |
276242
NodeBuilderFlags.WriteClassExpressionAsTypeLiteral |
277243
NodeBuilderFlags.UseTypeOfFunction |

src/compiler/transformers/es2015.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ import {
156156
NodeCheckFlags,
157157
NodeFlags,
158158
nodeIsSynthesized,
159-
nullTransformationContext,
160159
NumericLiteral,
161160
ObjectLiteralElementLike,
162161
ObjectLiteralExpression,
@@ -1642,12 +1641,12 @@ export function transformES2015(context: TransformationContext): (x: SourceFile
16421641
case SyntaxKind.PropertyDeclaration: {
16431642
const named = node as AccessorDeclaration | MethodDeclaration | PropertyDeclaration;
16441643
if (isComputedPropertyName(named.name)) {
1645-
return factory.replacePropertyName(named, visitEachChild(named.name, elideUnusedThisCaptureWorker, nullTransformationContext));
1644+
return factory.replacePropertyName(named, visitEachChild(named.name, elideUnusedThisCaptureWorker, /*context*/ undefined));
16461645
}
16471646
return node;
16481647
}
16491648
}
1650-
return visitEachChild(node, elideUnusedThisCaptureWorker, nullTransformationContext);
1649+
return visitEachChild(node, elideUnusedThisCaptureWorker, /*context*/ undefined);
16511650
}
16521651

16531652
/**
@@ -1728,12 +1727,12 @@ export function transformES2015(context: TransformationContext): (x: SourceFile
17281727
case SyntaxKind.PropertyDeclaration: {
17291728
const named = node as AccessorDeclaration | MethodDeclaration | PropertyDeclaration;
17301729
if (isComputedPropertyName(named.name)) {
1731-
return factory.replacePropertyName(named, visitEachChild(named.name, injectSuperPresenceCheckWorker, nullTransformationContext));
1730+
return factory.replacePropertyName(named, visitEachChild(named.name, injectSuperPresenceCheckWorker, /*context*/ undefined));
17321731
}
17331732
return node;
17341733
}
17351734
}
1736-
return visitEachChild(node, injectSuperPresenceCheckWorker, nullTransformationContext);
1735+
return visitEachChild(node, injectSuperPresenceCheckWorker, /*context*/ undefined);
17371736
}
17381737

17391738
/**

src/compiler/utilities.ts

-1
Original file line numberDiff line numberDiff line change
@@ -2432,7 +2432,6 @@ export const fullTripleSlashAMDReferencePathRegEx = /^(\/\/\/\s*<amd-dependency\
24322432
const fullTripleSlashAMDModuleRegEx = /^\/\/\/\s*<amd-module\s+.*?\/>/;
24332433
const defaultLibReferenceRegEx = /^(\/\/\/\s*<reference\s+no-default-lib\s*=\s*)(('[^']*')|("[^"]*"))\s*\/>/;
24342434

2435-
/** @internal */
24362435
export function isPartOfTypeNode(node: Node): boolean {
24372436
if (SyntaxKind.FirstTypeNode <= node.kind && node.kind <= SyntaxKind.LastTypeNode) {
24382437
return true;

src/compiler/utilitiesPublic.ts

+39-1
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ import {
3232
ClassLikeDeclaration,
3333
ClassStaticBlockDeclaration,
3434
combinePaths,
35+
CommentRange,
3536
compareDiagnostics,
3637
CompilerOptions,
38+
concatenate,
3739
ConciseBody,
3840
ConstructorDeclaration,
3941
ConstructorTypeNode,
@@ -62,6 +64,7 @@ import {
6264
filter,
6365
find,
6466
flatMap,
67+
forEach,
6568
ForInitializer,
6669
ForInOrOfStatement,
6770
FunctionBody,
@@ -81,6 +84,10 @@ import {
8184
getJSDocCommentsAndTags,
8285
getJSDocRoot,
8386
getJSDocTypeParameterDeclarations,
87+
getLeadingCommentRanges,
88+
getLeadingCommentRangesOfNode,
89+
getSourceFileOfNode,
90+
getTrailingCommentRanges,
8491
hasAccessorModifier,
8592
HasDecorators,
8693
hasDecorators,
@@ -204,6 +211,7 @@ import {
204211
JsxTagNameExpression,
205212
KeywordSyntaxKind,
206213
LabeledStatement,
214+
last,
207215
lastOrUndefined,
208216
LeftHandSideExpression,
209217
length,
@@ -258,9 +266,11 @@ import {
258266
setUILocale,
259267
SignatureDeclaration,
260268
skipOuterExpressions,
269+
skipTrivia,
261270
some,
262271
sortAndDeduplicate,
263272
SortedReadonlyArray,
273+
SourceFile,
264274
Statement,
265275
StringLiteral,
266276
StringLiteralLike,
@@ -2376,7 +2386,6 @@ export function isDeclaration(node: Node): node is NamedDeclaration {
23762386
return isDeclarationKind(node.kind);
23772387
}
23782388

2379-
/** @internal */
23802389
export function isDeclarationStatement(node: Node): node is DeclarationStatement {
23812390
return isDeclarationStatementKind(node.kind);
23822391
}
@@ -2606,3 +2615,32 @@ export function isRestParameter(node: ParameterDeclaration | JSDocParameterTag):
26062615
const type = isJSDocParameterTag(node) ? (node.typeExpression && node.typeExpression.type) : node.type;
26072616
return (node as ParameterDeclaration).dotDotDotToken !== undefined || !!type && type.kind === SyntaxKind.JSDocVariadicType;
26082617
}
2618+
2619+
function hasInternalAnnotation(range: CommentRange, sourceFile: SourceFile) {
2620+
const comment = sourceFile.text.substring(range.pos, range.end);
2621+
return comment.includes("@internal");
2622+
}
2623+
2624+
export function isInternalDeclaration(node: Node, sourceFile?: SourceFile) {
2625+
sourceFile ??= getSourceFileOfNode(node);
2626+
const parseTreeNode = getParseTreeNode(node);
2627+
if (parseTreeNode && parseTreeNode.kind === SyntaxKind.Parameter) {
2628+
const paramIdx = (parseTreeNode.parent as SignatureDeclaration).parameters.indexOf(parseTreeNode as ParameterDeclaration);
2629+
const previousSibling = paramIdx > 0 ? (parseTreeNode.parent as SignatureDeclaration).parameters[paramIdx - 1] : undefined;
2630+
const text = sourceFile.text;
2631+
const commentRanges = previousSibling
2632+
? concatenate(
2633+
// to handle
2634+
// ... parameters, /** @internal */
2635+
// public param: string
2636+
getTrailingCommentRanges(text, skipTrivia(text, previousSibling.end + 1, /*stopAfterLineBreak*/ false, /*stopAtComments*/ true)),
2637+
getLeadingCommentRanges(text, node.pos),
2638+
)
2639+
: getTrailingCommentRanges(text, skipTrivia(text, node.pos, /*stopAfterLineBreak*/ false, /*stopAtComments*/ true));
2640+
return some(commentRanges) && hasInternalAnnotation(last(commentRanges), sourceFile);
2641+
}
2642+
const leadingCommentRanges = parseTreeNode && getLeadingCommentRangesOfNode(parseTreeNode, sourceFile);
2643+
return !!forEach(leadingCommentRanges, range => {
2644+
return hasInternalAnnotation(range, sourceFile!);
2645+
});
2646+
}

src/compiler/visitorPublic.ts

+6-5
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ import {
9090
NodeArray,
9191
NodesVisitor,
9292
NodeVisitor,
93+
nullTransformationContext,
9394
ParameterDeclaration,
9495
ScriptTarget,
9596
setEmitFlags,
@@ -580,20 +581,20 @@ export function visitCommaListElements(elements: NodeArray<Expression>, visitor:
580581
* @param visitor The callback used to visit each child.
581582
* @param context A lexical environment context for the visitor.
582583
*/
583-
export function visitEachChild<T extends Node>(node: T, visitor: Visitor, context: TransformationContext): T;
584+
export function visitEachChild<T extends Node>(node: T, visitor: Visitor, context: TransformationContext | undefined): T;
584585
/** @internal */
585-
export function visitEachChild<T extends Node>(node: T, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor, tokenVisitor?: Visitor, nodeVisitor?: NodeVisitor): T; // eslint-disable-line @typescript-eslint/unified-signatures
586+
export function visitEachChild<T extends Node>(node: T, visitor: Visitor, context: TransformationContext | undefined, nodesVisitor?: NodesVisitor, tokenVisitor?: Visitor, nodeVisitor?: NodeVisitor): T; // eslint-disable-line @typescript-eslint/unified-signatures
586587
/**
587588
* Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place.
588589
*
589590
* @param node The Node whose children will be visited.
590591
* @param visitor The callback used to visit each child.
591592
* @param context A lexical environment context for the visitor.
592593
*/
593-
export function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: typeof visitNodes, tokenVisitor?: Visitor): T | undefined;
594+
export function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext | undefined, nodesVisitor?: typeof visitNodes, tokenVisitor?: Visitor): T | undefined;
594595
/** @internal */
595-
export function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: NodesVisitor, tokenVisitor?: Visitor, nodeVisitor?: NodeVisitor): T | undefined;
596-
export function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor = visitNodes, tokenVisitor?: Visitor, nodeVisitor: NodeVisitor = visitNode): T | undefined {
596+
export function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext | undefined, nodesVisitor?: NodesVisitor, tokenVisitor?: Visitor, nodeVisitor?: NodeVisitor): T | undefined;
597+
export function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context = nullTransformationContext, nodesVisitor = visitNodes, tokenVisitor?: Visitor, nodeVisitor: NodeVisitor = visitNode): T | undefined {
597598
if (node === undefined) {
598599
return undefined;
599600
}

src/services/codefixes/annotateWithTypeFromJSDoc.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import {
2727
last,
2828
map,
2929
Node,
30-
nullTransformationContext,
3130
ParameterDeclaration,
3231
PropertyDeclaration,
3332
PropertySignature,
@@ -144,7 +143,7 @@ function transformJSDocType(node: Node): Node {
144143
case SyntaxKind.JSDocTypeLiteral:
145144
return transformJSDocTypeLiteral(node as JSDocTypeLiteral);
146145
default:
147-
const visited = visitEachChild(node, transformJSDocType, nullTransformationContext);
146+
const visited = visitEachChild(node, transformJSDocType, /*context*/ undefined);
148147
setEmitFlags(visited, EmitFlags.SingleLine);
149148
return visited;
150149
}

src/services/codefixes/helpers.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ import {
7070
NodeArray,
7171
NodeBuilderFlags,
7272
NodeFlags,
73-
nullTransformationContext,
7473
ObjectFlags,
7574
ObjectLiteralExpression,
7675
ObjectType,
@@ -913,7 +912,7 @@ export function tryGetAutoImportableReferenceFromTypeNode(importTypeNode: TypeNo
913912
const typeArguments = visitNodes(node.typeArguments, visit, isTypeNode);
914913
return factory.createTypeReferenceNode(qualifier, typeArguments);
915914
}
916-
return visitEachChild(node, visit, nullTransformationContext);
915+
return visitEachChild(node, visit, /*context*/ undefined);
917916
}
918917
}
919918

src/services/refactors/extractSymbol.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ import {
120120
Node,
121121
NodeBuilderFlags,
122122
NodeFlags,
123-
nullTransformationContext,
124123
ObjectLiteralElementLike,
125124
ParameterDeclaration,
126125
positionIsSynthesized,
@@ -1648,7 +1647,7 @@ function transformFunctionBody(body: Node, exposedVariableDeclarations: readonly
16481647
const oldIgnoreReturns = ignoreReturns;
16491648
ignoreReturns = ignoreReturns || isFunctionLikeDeclaration(node) || isClassLike(node);
16501649
const substitution = substitutions.get(getNodeId(node).toString());
1651-
const result = substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(node, visitor, nullTransformationContext);
1650+
const result = substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(node, visitor, /*context*/ undefined);
16521651
ignoreReturns = oldIgnoreReturns;
16531652
return result;
16541653
}
@@ -1662,7 +1661,7 @@ function transformConstantInitializer(initializer: Expression, substitutions: Re
16621661

16631662
function visitor(node: Node): VisitResult<Node> {
16641663
const substitution = substitutions.get(getNodeId(node).toString());
1665-
return substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(node, visitor, nullTransformationContext);
1664+
return substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(node, visitor, /*context*/ undefined);
16661665
}
16671666
}
16681667

src/services/utilities.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,6 @@ import {
294294
normalizePath,
295295
NoSubstitutionTemplateLiteral,
296296
notImplemented,
297-
nullTransformationContext,
298297
NumericLiteral,
299298
or,
300299
OrganizeImports,
@@ -3175,7 +3174,7 @@ function getSynthesizedDeepCloneWorker<T extends Node>(node: T, replaceNode?: (n
31753174
const nodesClone: <T extends Node>(ns: NodeArray<T> | undefined) => NodeArray<T> | undefined = replaceNode
31763175
? ns => ns && getSynthesizedDeepClonesWithReplacements(ns, /*includeTrivia*/ true, replaceNode)
31773176
: ns => ns && getSynthesizedDeepClones(ns);
3178-
const visited = visitEachChild(node, nodeClone, nullTransformationContext, nodesClone, nodeClone);
3177+
const visited = visitEachChild(node, nodeClone, /*context*/ undefined, nodesClone, nodeClone);
31793178

31803179
if (visited === node) {
31813180
// This only happens for leaf nodes - internal nodes always see their children change.

0 commit comments

Comments
 (0)