Skip to content

Commit 2bc8f67

Browse files
Renamed functions that get types from nodes.
1 parent 5486caa commit 2bc8f67

2 files changed

Lines changed: 49 additions & 49 deletions

File tree

src/compiler/transformers/declarations.ts

Lines changed: 49 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ import {
9191
hasEffectiveModifier,
9292
hasEffectiveReadonlyModifier,
9393
hasExtension,
94-
HasInferredType,
9594
hasJSDocNodes,
9695
HasModifiers,
9796
hasSyntacticModifier,
@@ -818,7 +817,21 @@ export function transformDeclarations(context: TransformationContext) {
818817
return factory.createTypeReferenceNode("invalid");
819818
}
820819

821-
function ensureType(node: HasInferredType | ExportAssignment, type: TypeNode | undefined, ignorePrivate?: boolean): TypeNode | undefined {
820+
type HasInferredType =
821+
| FunctionDeclaration
822+
| MethodDeclaration
823+
| GetAccessorDeclaration
824+
| BindingElement
825+
| ConstructSignatureDeclaration
826+
| VariableDeclaration
827+
| MethodSignature
828+
| CallSignatureDeclaration
829+
| ParameterDeclaration
830+
| PropertyDeclaration
831+
| PropertySignature
832+
| ExportAssignment;
833+
834+
function ensureType(node: HasInferredType, type: TypeNode | undefined, ignorePrivate?: boolean): TypeNode | undefined {
822835
if (!ignorePrivate && hasEffectiveModifier(node, ModifierFlags.Private)) {
823836
// Private nodes emit no types (except private parameter properties, whose parameter types are actually visible)
824837
return;
@@ -926,10 +939,10 @@ export function transformDeclarations(context: TransformationContext) {
926939
}
927940
return diag;
928941
}
929-
function transformExpressionToTypeNode(node: Expression, inferenceFlags: InitializeTransformNarrowBehavior = InitializeTransformNarrowBehavior.None): TypeNode | undefined {
942+
function typeFromExpression(node: Expression, inferenceFlags: InitializeTransformNarrowBehavior = InitializeTransformNarrowBehavior.None): TypeNode | undefined {
930943
switch (node.kind) {
931944
case SyntaxKind.ParenthesizedExpression:
932-
return transformExpressionToTypeNode((node as ParenthesizedExpression).expression, inferenceFlags & InitializeTransformNarrowBehavior.NotKeepLiterals);
945+
return typeFromExpression((node as ParenthesizedExpression).expression, inferenceFlags & InitializeTransformNarrowBehavior.NotKeepLiterals);
933946
case SyntaxKind.Identifier:
934947
if (resolver.isUndefinedIdentifier(node as Identifier)) {
935948
return createUndefinedTypeNode();
@@ -944,12 +957,12 @@ export function transformDeclarations(context: TransformationContext) {
944957
}
945958
case SyntaxKind.ArrowFunction:
946959
case SyntaxKind.FunctionExpression:
947-
return transformFunctionExpressionOrArrowFunction(node as ArrowFunction | FunctionExpression);
960+
return typeFromFunctionExpressionLike(node as ArrowFunction | FunctionExpression);
948961
case SyntaxKind.TypeAssertionExpression:
949962
case SyntaxKind.AsExpression:
950963
const asExpression = node as AsExpression | TypeAssertion;
951964
if (isTypeReferenceNode(asExpression.type) && isConstTypeReference(asExpression.type)) {
952-
return transformExpressionToTypeNode(asExpression.expression, InitializeTransformNarrowBehavior.AsConst);
965+
return typeFromExpression(asExpression.expression, InitializeTransformNarrowBehavior.AsConst);
953966
}
954967
else {
955968
const type = asExpression.type;
@@ -962,32 +975,32 @@ export function transformDeclarations(context: TransformationContext) {
962975
const unaryExpression = node as PrefixUnaryExpression;
963976
if (isPrimitiveLiteralValue(unaryExpression)) {
964977
if (unaryExpression.operand.kind === SyntaxKind.BigIntLiteral) {
965-
return transformPrimitiveLiteralToType(unaryExpression, SyntaxKind.BigIntKeyword, inferenceFlags);
978+
return typeFromPrimitiveLiteral(unaryExpression, SyntaxKind.BigIntKeyword, inferenceFlags);
966979
}
967980
if (unaryExpression.operand.kind === SyntaxKind.NumericLiteral) {
968-
return transformPrimitiveLiteralToType(unaryExpression, SyntaxKind.NumberKeyword, inferenceFlags);
981+
return typeFromPrimitiveLiteral(unaryExpression, SyntaxKind.NumberKeyword, inferenceFlags);
969982
}
970983
}
971984
break;
972985
case SyntaxKind.NumericLiteral:
973-
return transformPrimitiveLiteralToType(node as NumericLiteral, SyntaxKind.NumberKeyword, inferenceFlags);
986+
return typeFromPrimitiveLiteral(node as NumericLiteral, SyntaxKind.NumberKeyword, inferenceFlags);
974987
case SyntaxKind.TemplateExpression:
975988
if (!(inferenceFlags & InitializeTransformNarrowBehavior.AsConstOrKeepLiterals)) {
976989
return factory.createKeywordTypeNode(SyntaxKind.StringKeyword);
977990
}
978991
break;
979992
case SyntaxKind.NoSubstitutionTemplateLiteral:
980993
case SyntaxKind.StringLiteral:
981-
return transformPrimitiveLiteralToType(node as StringLiteral | NoSubstitutionTemplateLiteral, SyntaxKind.StringKeyword, inferenceFlags);
994+
return typeFromPrimitiveLiteral(node as StringLiteral | NoSubstitutionTemplateLiteral, SyntaxKind.StringKeyword, inferenceFlags);
982995
case SyntaxKind.BigIntLiteral:
983-
return transformPrimitiveLiteralToType(node as BigIntLiteral, SyntaxKind.BigIntKeyword, inferenceFlags);
996+
return typeFromPrimitiveLiteral(node as BigIntLiteral, SyntaxKind.BigIntKeyword, inferenceFlags);
984997
case SyntaxKind.TrueKeyword:
985998
case SyntaxKind.FalseKeyword:
986-
return transformPrimitiveLiteralToType(node as TrueLiteral | FalseLiteral, SyntaxKind.BooleanKeyword, inferenceFlags);
999+
return typeFromPrimitiveLiteral(node as TrueLiteral | FalseLiteral, SyntaxKind.BooleanKeyword, inferenceFlags);
9871000
case SyntaxKind.ArrayLiteralExpression:
988-
return transformArrayLiteralToType(node as ArrayLiteralExpression, inferenceFlags);
1001+
return typeFromArrayLiteral(node as ArrayLiteralExpression, inferenceFlags);
9891002
case SyntaxKind.ObjectLiteralExpression:
990-
return transformObjectLiteralExpressionToType(node as ObjectLiteralExpression, inferenceFlags);
1003+
return typeFromObjectLiteral(node as ObjectLiteralExpression, inferenceFlags);
9911004
}
9921005
return undefined;
9931006
}
@@ -1035,13 +1048,13 @@ export function transformDeclarations(context: TransformationContext) {
10351048
}
10361049
switch (node.kind) {
10371050
case SyntaxKind.Parameter:
1038-
typeNode = transformParameterInitializerToTypeNode(node, type);
1051+
typeNode = typeFromParameter(node, type);
10391052
break;
10401053
case SyntaxKind.VariableDeclaration:
1041-
typeNode = transformVariableInitializerToTypeNode(node, type);
1054+
typeNode = typeFromVariable(node, type);
10421055
break;
10431056
case SyntaxKind.PropertyDeclaration:
1044-
typeNode = transformPropertyToTypeNode(node, type);
1057+
typeNode = typeFromProperty(node, type);
10451058
break;
10461059
case SyntaxKind.GetAccessor:
10471060
const allAccessors = resolver.getAllAccessorDeclarations(node);
@@ -1077,7 +1090,7 @@ export function transformDeclarations(context: TransformationContext) {
10771090
}
10781091
break;
10791092
case SyntaxKind.ExportAssignment:
1080-
typeNode = transformExpressionToTypeNode(node.expression, InitializeTransformNarrowBehavior.KeepLiterals) ?? typeInferenceForExpression(node.expression, createExpressionError);
1093+
typeNode = typeFromExpression(node.expression, InitializeTransformNarrowBehavior.KeepLiterals) ?? typeInferenceForExpression(node.expression, createExpressionError);
10811094
break;
10821095
default:
10831096
Debug.assertNever(node, `Node needs to be an inferrable type found ${Debug.formatSyntaxKind((node as Node).kind)}`);
@@ -1090,7 +1103,7 @@ export function transformDeclarations(context: TransformationContext) {
10901103
}
10911104
return typeNode;
10921105
}
1093-
function transformFunctionExpressionOrArrowFunction(fnNode: FunctionExpression | ArrowFunction) {
1106+
function typeFromFunctionExpressionLike(fnNode: FunctionExpression | ArrowFunction) {
10941107
const oldEnclosingDeclaration = enclosingDeclaration;
10951108
enclosingDeclaration = fnNode;
10961109

@@ -1112,7 +1125,7 @@ export function transformDeclarations(context: TransformationContext) {
11121125
}
11131126
return true;
11141127
}
1115-
function transformArrayLiteralToType(arrayLiteral: ArrayLiteralExpression, inferenceFlags: InitializeTransformNarrowBehavior) {
1128+
function typeFromArrayLiteral(arrayLiteral: ArrayLiteralExpression, inferenceFlags: InitializeTransformNarrowBehavior) {
11161129
if (!(inferenceFlags & InitializeTransformNarrowBehavior.AsConst)) {
11171130
return typeInferenceForExpression(arrayLiteral, createArrayLiteralError);
11181131
}
@@ -1128,7 +1141,7 @@ export function transformDeclarations(context: TransformationContext) {
11281141
);
11291142
}
11301143
else {
1131-
const elementType = transformExpressionToTypeNode(element, inferenceFlags & InitializeTransformNarrowBehavior.NotKeepLiterals) ?? typeInferenceForExpression(element, createExpressionError);
1144+
const elementType = typeFromExpression(element, inferenceFlags & InitializeTransformNarrowBehavior.NotKeepLiterals) ?? typeInferenceForExpression(element, createExpressionError);
11321145
elementTypesInfo.push(elementType);
11331146
}
11341147
}
@@ -1165,7 +1178,7 @@ export function transformDeclarations(context: TransformationContext) {
11651178
}
11661179
return result;
11671180
}
1168-
function transformObjectLiteralExpressionToType(objectLiteral: ObjectLiteralExpression, inferenceFlags: InitializeTransformNarrowBehavior) {
1181+
function typeFromObjectLiteral(objectLiteral: ObjectLiteralExpression, inferenceFlags: InitializeTransformNarrowBehavior) {
11691182
if (!canGetTypeFromObjectLiteral(objectLiteral)) return typeInferenceForExpression(objectLiteral, /*diagMessage*/ undefined);
11701183

11711184
const properties: TypeElement[] = [];
@@ -1205,14 +1218,14 @@ export function transformDeclarations(context: TransformationContext) {
12051218
let newProp;
12061219
switch (prop.kind) {
12071220
case SyntaxKind.MethodDeclaration:
1208-
newProp = transformMethodDeclarationToSignature(prop, name, inferenceFlags);
1221+
newProp = typeFromMethodDeclaration(prop, name, inferenceFlags);
12091222
break;
12101223
case SyntaxKind.PropertyAssignment:
1211-
newProp = transformPropertyAssignment(prop, name, inferenceFlags);
1224+
newProp = typeFromPropertyAssignment(prop, name, inferenceFlags);
12121225
break;
12131226
case SyntaxKind.SetAccessor:
12141227
case SyntaxKind.GetAccessor:
1215-
newProp = transformAccessor(prop, name);
1228+
newProp = typeFromAccessor(prop, name);
12161229
break;
12171230
}
12181231
if (newProp) {
@@ -1224,19 +1237,19 @@ export function transformDeclarations(context: TransformationContext) {
12241237
return factory.createTypeLiteralNode(properties);
12251238
}
12261239

1227-
function transformPropertyAssignment(prop: PropertyAssignment, name: PropertyName, inferenceFlags: InitializeTransformNarrowBehavior) {
1240+
function typeFromPropertyAssignment(prop: PropertyAssignment, name: PropertyName, inferenceFlags: InitializeTransformNarrowBehavior) {
12281241
const modifiers = inferenceFlags & InitializeTransformNarrowBehavior.AsConst ?
12291242
[factory.createModifier(SyntaxKind.ReadonlyKeyword)] :
12301243
[];
1231-
const typeNode = transformExpressionToTypeNode(prop.initializer, inferenceFlags & InitializeTransformNarrowBehavior.NotKeepLiterals) ?? typeInferenceForVariableLike(prop, p => createExpressionError(p.initializer));
1244+
const typeNode = typeFromExpression(prop.initializer, inferenceFlags & InitializeTransformNarrowBehavior.NotKeepLiterals) ?? typeInferenceForVariableLike(prop, p => createExpressionError(p.initializer));
12321245
return factory.createPropertySignature(
12331246
modifiers,
12341247
name,
12351248
/*questionToken*/ undefined,
12361249
typeNode,
12371250
);
12381251
}
1239-
function transformMethodDeclarationToSignature(method: MethodDeclaration, name: PropertyName, inferenceFlags: InitializeTransformNarrowBehavior) {
1252+
function typeFromMethodDeclaration(method: MethodDeclaration, name: PropertyName, inferenceFlags: InitializeTransformNarrowBehavior) {
12401253
const oldEnclosingDeclaration = enclosingDeclaration;
12411254
enclosingDeclaration = method;
12421255
try {
@@ -1274,7 +1287,7 @@ export function transformDeclarations(context: TransformationContext) {
12741287
}
12751288
}
12761289

1277-
function transformAccessor(accessor: GetAccessorDeclaration | SetAccessorDeclaration, name: PropertyName) {
1290+
function typeFromAccessor(accessor: GetAccessorDeclaration | SetAccessorDeclaration, name: PropertyName) {
12781291
const allAccessors = resolver.getAllAccessorDeclarations(accessor);
12791292
const getAccessorType = allAccessors.getAccessor && getTypeAnnotationFromAccessor(allAccessors.getAccessor);
12801293
const setAccessorType = allAccessors.setAccessor && getTypeAnnotationFromAccessor(allAccessors.setAccessor);
@@ -1323,7 +1336,7 @@ export function transformDeclarations(context: TransformationContext) {
13231336
return factory.createKeywordTypeNode(SyntaxKind.AnyKeyword);
13241337
}
13251338
}
1326-
function transformPrimitiveLiteralToType(node: PrimitiveLiteral, baseType: string | KeywordTypeSyntaxKind, narrowBehavior: InitializeTransformNarrowBehavior) {
1339+
function typeFromPrimitiveLiteral(node: PrimitiveLiteral, baseType: string | KeywordTypeSyntaxKind, narrowBehavior: InitializeTransformNarrowBehavior) {
13271340
if (narrowBehavior & InitializeTransformNarrowBehavior.AsConstOrKeepLiterals) {
13281341
return factory.createLiteralTypeNode(clonePrimitiveLiteralValue(node));
13291342
}
@@ -1351,7 +1364,7 @@ export function transformDeclarations(context: TransformationContext) {
13511364
factory.createKeywordTypeNode(SyntaxKind.UndefinedKeyword),
13521365
]);
13531366
}
1354-
function transformVariableInitializerToTypeNode(node: VariableDeclaration, type: TypeNode | undefined) {
1367+
function typeFromVariable(node: VariableDeclaration, type: TypeNode | undefined) {
13551368
const firstDeclaration = node.symbol.valueDeclaration;
13561369
// Use first declaration of variable for the type
13571370
if (node !== firstDeclaration && firstDeclaration && isVariableDeclaration(firstDeclaration)) {
@@ -1389,13 +1402,13 @@ export function transformDeclarations(context: TransformationContext) {
13891402
return typeInferenceForVariableLike(node, /*diagMessage*/ undefined);
13901403
}
13911404
else {
1392-
return transformExpressionToTypeNode(node.initializer, node.parent.flags & NodeFlags.Const ? InitializeTransformNarrowBehavior.KeepLiterals : InitializeTransformNarrowBehavior.None)
1405+
return typeFromExpression(node.initializer, node.parent.flags & NodeFlags.Const ? InitializeTransformNarrowBehavior.KeepLiterals : InitializeTransformNarrowBehavior.None)
13931406
?? typeInferenceForVariableLike(node, createVariableOrPropertyError);
13941407
}
13951408
}
13961409
return typeInferenceForVariableLike(node, createVariableOrPropertyError);
13971410
}
1398-
function transformParameterInitializerToTypeNode(node: ParameterDeclaration, type: TypeNode | undefined) {
1411+
function typeFromParameter(node: ParameterDeclaration, type: TypeNode | undefined) {
13991412
const addUndefined = resolver.requiresAddingImplicitUndefined(node);
14001413
if (addUndefined || (!type && !(node.initializer && isIdentifier(node.name)))) {
14011414
if (isolatedDeclarations) {
@@ -1406,19 +1419,19 @@ export function transformDeclarations(context: TransformationContext) {
14061419
return visitTypeNode(type);
14071420
}
14081421
else if (node.initializer) {
1409-
return transformExpressionToTypeNode(node.initializer) ?? typeInferenceForVariableLike(node, n => createExpressionError(n.initializer!));
1422+
return typeFromExpression(node.initializer) ?? typeInferenceForVariableLike(node, n => createExpressionError(n.initializer!));
14101423
}
14111424
return typeInferenceForVariableLike(node, createParameterError, addUndefined);
14121425
}
1413-
function transformPropertyToTypeNode(node: PropertyDeclaration, type: TypeNode | undefined) {
1426+
function typeFromProperty(node: PropertyDeclaration, type: TypeNode | undefined) {
14141427
if (type) {
14151428
return visitTypeNode(type);
14161429
}
14171430
else if (node.initializer) {
14181431
let resultNode;
14191432
const optionalFlags = isOptionalDeclaration(node) ? InitializeTransformNarrowBehavior.NoTypeReferences : InitializeTransformNarrowBehavior.None;
14201433
const readonlyFlags = hasEffectiveReadonlyModifier(node) ? InitializeTransformNarrowBehavior.KeepLiterals : InitializeTransformNarrowBehavior.None;
1421-
resultNode = transformExpressionToTypeNode(node.initializer, optionalFlags | readonlyFlags) ?? typeInferenceForVariableLike(node, createVariableOrPropertyError);
1434+
resultNode = typeFromExpression(node.initializer, optionalFlags | readonlyFlags) ?? typeInferenceForVariableLike(node, createVariableOrPropertyError);
14221435
if (optionalFlags && resultNode) {
14231436
resultNode = addUndefinedInUnion(resultNode);
14241437
}

src/compiler/types.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,19 +1385,6 @@ export type HasIllegalModifiers =
13851385
| NamespaceExportDeclaration;
13861386

13871387
/** @internal */
1388-
export type HasInferredType =
1389-
| FunctionDeclaration
1390-
| MethodDeclaration
1391-
| GetAccessorDeclaration
1392-
| BindingElement
1393-
| ConstructSignatureDeclaration
1394-
| VariableDeclaration
1395-
| MethodSignature
1396-
| CallSignatureDeclaration
1397-
| ParameterDeclaration
1398-
| PropertyDeclaration
1399-
| PropertySignature;
1400-
/** @internal */
14011388
export type PrimitiveLiteral =
14021389
| BooleanLiteral
14031390
| NumericLiteral

0 commit comments

Comments
 (0)