Skip to content

Commit 0588f8b

Browse files
author
Arthur Ozga
committed
cleanup
1 parent 62dbf12 commit 0588f8b

File tree

2 files changed

+14
-41
lines changed

2 files changed

+14
-41
lines changed

src/compiler/checker.ts

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2436,24 +2436,17 @@ namespace ts {
24362436
Debug.assert(!!(type.flags & TypeFlags.Object));
24372437
return typeReferenceToTypeNode(<TypeReference>type);
24382438
}
2439-
if (objectFlags & ObjectFlags.ClassOrInterface) {
2440-
Debug.assert(!!(type.flags & TypeFlags.Object));
2441-
const name = symbolToName(type.symbol, context, SymbolFlags.Type, /*expectsIdentifier*/ false);
2442-
return createTypeReferenceNode(name, /*typeArguments*/ undefined);
2443-
}
2444-
if (type.flags & TypeFlags.TypeParameter) {
2439+
if (type.flags & TypeFlags.TypeParameter || objectFlags & ObjectFlags.ClassOrInterface) {
24452440
const name = symbolToName(type.symbol, context, SymbolFlags.Type, /*expectsIdentifier*/ false);
24462441
// Ignore constraint/default when creating a usage (as opposed to declaration) of a type parameter.
24472442
return createTypeReferenceNode(name, /*typeArguments*/ undefined);
24482443
}
2449-
24502444
if (!inTypeAlias && type.aliasSymbol &&
24512445
isSymbolAccessible(type.aliasSymbol, context.enclosingDeclaration, SymbolFlags.Type, /*shouldComputeAliasesToMakeVisible*/ false).accessibility === SymbolAccessibility.Accessible) {
24522446
const name = symbolToTypeReferenceName(type.aliasSymbol);
24532447
const typeArgumentNodes = toTypeArgumentNodes(type.aliasTypeArguments, context);
24542448
return createTypeReferenceNode(name, typeArgumentNodes);
24552449
}
2456-
24572450
if (type.flags & (TypeFlags.Union | TypeFlags.Intersection)) {
24582451
const types = type.flags & TypeFlags.Union ? formatUnionTypes((<UnionType>type).types) : (<IntersectionType>type).types;
24592452
const typeNodes = types && mapToTypeNodeArray(types, context, /*addInElementTypeFlag*/ true, /*addInFirstTypeArgumentFlag*/ false);
@@ -2468,21 +2461,18 @@ namespace ts {
24682461
return undefined;
24692462
}
24702463
}
2471-
24722464
if (objectFlags & (ObjectFlags.Anonymous | ObjectFlags.Mapped)) {
24732465
Debug.assert(!!(type.flags & TypeFlags.Object));
24742466
// The type is an object literal type.
24752467
return createAnonymousTypeNode(<ObjectType>type);
24762468
}
2477-
24782469
if (type.flags & TypeFlags.Index) {
24792470
const indexedType = (<IndexType>type).type;
24802471
context.flags |= NodeBuilderFlags.InElementType;
24812472
const indexTypeNode = typeToTypeNodeHelper(indexedType, context);
24822473
Debug.assert(!(context.flags & NodeBuilderFlags.InElementType));
24832474
return createTypeOperatorNode(indexTypeNode);
24842475
}
2485-
24862476
if (type.flags & TypeFlags.IndexedAccess) {
24872477
context.flags |= NodeBuilderFlags.InElementType;
24882478
const objectTypeNode = typeToTypeNodeHelper((<IndexedAccessType>type).objectType, context);
@@ -2495,13 +2485,10 @@ namespace ts {
24952485

24962486
function createMappedTypeNodeFromType(type: MappedType) {
24972487
Debug.assert(!!(type.flags & TypeFlags.Object));
2498-
const typeParameter = getTypeParameterFromMappedType(type);
2499-
const typeParameterNode = typeParameterToDeclaration(typeParameter, context);
2500-
2501-
const templateType = getTemplateTypeFromMappedType(type);
2502-
const templateTypeNode = typeToTypeNodeHelper(templateType, context);
25032488
const readonlyToken = type.declaration && type.declaration.readonlyToken ? createToken(SyntaxKind.ReadonlyKeyword) : undefined;
25042489
const questionToken = type.declaration && type.declaration.questionToken ? createToken(SyntaxKind.QuestionToken) : undefined;
2490+
const typeParameterNode = typeParameterToDeclaration(getTypeParameterFromMappedType(type), context);
2491+
const templateTypeNode = typeToTypeNodeHelper(getTemplateTypeFromMappedType(type), context);
25052492

25062493
const mappedTypeNode = createMappedTypeNode(readonlyToken, typeParameterNode, questionToken, templateTypeNode);
25072494
return setEmitFlags(mappedTypeNode, EmitFlags.SingleLine);
@@ -2521,7 +2508,7 @@ namespace ts {
25212508
const typeAlias = getTypeAliasForTypeLiteral(type);
25222509
if (typeAlias) {
25232510
// The specified symbol flags need to be reinterpreted as type flags
2524-
const entityName = symbolToName(typeAlias, context, SymbolFlags.Type, /*expectsIdentifier*/ false );
2511+
const entityName = symbolToName(typeAlias, context, SymbolFlags.Type, /*expectsIdentifier*/ false);
25252512
return createTypeReferenceNode(entityName, /*typeArguments*/ undefined);
25262513
}
25272514
else {
@@ -2802,8 +2789,8 @@ namespace ts {
28022789
}
28032790

28042791
function indexInfoToIndexSignatureDeclarationHelper(indexInfo: IndexInfo, kind: IndexKind, context: NodeBuilderContext): IndexSignatureDeclaration {
2805-
const indexerTypeNode = createKeywordTypeNode(kind === IndexKind.String ? SyntaxKind.StringKeyword : SyntaxKind.NumberKeyword);
28062792
const name = getNameFromIndexInfo(indexInfo) || "x";
2793+
const indexerTypeNode = createKeywordTypeNode(kind === IndexKind.String ? SyntaxKind.StringKeyword : SyntaxKind.NumberKeyword);
28072794

28082795
const indexingParameter = createParameter(
28092796
/*decorators*/ undefined,
@@ -2851,37 +2838,32 @@ namespace ts {
28512838
}
28522839

28532840
function typeParameterToDeclaration(type: TypeParameter, context: NodeBuilderContext): TypeParameterDeclaration {
2841+
const name = symbolToName(type.symbol, context, SymbolFlags.Type, /*expectsIdentifier*/ true);
28542842
const constraint = getConstraintFromTypeParameter(type);
28552843
const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
28562844
const defaultParameter = getDefaultFromTypeParameter(type);
28572845
const defaultParameterNode = defaultParameter && typeToTypeNodeHelper(defaultParameter, context);
2858-
const name = symbolToName(type.symbol, context, SymbolFlags.Type, /*expectsIdentifier*/ true);
28592846
return createTypeParameterDeclaration(name, constraintNode, defaultParameterNode);
28602847
}
28612848

28622849
function symbolToParameterDeclaration(parameterSymbol: Symbol, context: NodeBuilderContext): ParameterDeclaration {
28632850
const parameterDeclaration = <ParameterDeclaration>getDeclarationOfKind(parameterSymbol, SyntaxKind.Parameter);
2851+
const modifiers = parameterDeclaration.modifiers && parameterDeclaration.modifiers.map(getSynthesizedClone);
2852+
const dotDotDotToken = isRestParameter(parameterDeclaration) ? createToken(SyntaxKind.DotDotDotToken) : undefined;
2853+
const name = parameterDeclaration.name.kind === SyntaxKind.Identifier ?
2854+
getSynthesizedClone(parameterDeclaration.name) :
2855+
cloneBindingName(parameterDeclaration.name);
2856+
const questionToken = isOptionalParameter(parameterDeclaration) ? createToken(SyntaxKind.QuestionToken) : undefined;
2857+
28642858
let parameterType = getTypeOfSymbol(parameterSymbol);
28652859
if (isRequiredInitializedParameter(parameterDeclaration)) {
28662860
parameterType = includeFalsyTypes(parameterType, TypeFlags.Undefined);
28672861
}
28682862
const parameterTypeNode = typeToTypeNodeHelper(parameterType, context);
2869-
let name: BindingName;
2870-
if (parameterDeclaration.name.kind === SyntaxKind.Identifier) {
2871-
name = getSynthesizedClone(parameterDeclaration.name);
2872-
}
2873-
else {
2874-
Debug.assert(parameterDeclaration.name.kind === SyntaxKind.ArrayBindingPattern || parameterDeclaration.name.kind === SyntaxKind.ObjectBindingPattern);
2875-
name = cloneBindingName(parameterDeclaration.name);
2876-
}
2877-
const questionToken = isOptionalParameter(parameterDeclaration) ? createToken(SyntaxKind.QuestionToken) : undefined;
2878-
const dotDotDotToken = (parameterDeclaration ? isRestParameter(parameterDeclaration) : isTransientSymbol(parameterSymbol) && parameterSymbol.isRestParameter) ?
2879-
createToken(SyntaxKind.DotDotDotToken) :
2880-
undefined;
28812863

28822864
const parameterNode = createParameter(
28832865
/*decorators*/ undefined,
2884-
cloneNodeArray(parameterDeclaration.modifiers),
2866+
modifiers,
28852867
dotDotDotToken,
28862868
name,
28872869
questionToken,

src/compiler/factory.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,6 @@ namespace ts {
8484
return clone;
8585
}
8686

87-
export function getDeepSynthesizedClone<T extends Node>(node: T | undefined): T {
88-
const clone = visitEachChild(node, getDeepSynthesizedClone, nullTransformationContext, /*nodeVisitor*/ undefined, getSynthesizedClone);
89-
return nodeIsSynthesized(clone) ? clone : getSynthesizedClone(clone);
90-
}
91-
92-
export function cloneNodeArray<T extends Node>(nodeArray: NodeArray<T>) {
93-
return nodeArray && nodeArray.map(getDeepSynthesizedClone);
94-
}
95-
9687
// Literals
9788

9889
export function createLiteral(value: string): StringLiteral;

0 commit comments

Comments
 (0)