Skip to content

Commit 41d2849

Browse files
committed
rename AllowComputedPropertyEnum -> WriteComputedProps
1 parent 9086542 commit 41d2849

File tree

5 files changed

+31
-23
lines changed

5 files changed

+31
-23
lines changed

src/compiler/checker.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ namespace ts {
464464
signatureToSignatureDeclaration: nodeBuilder.signatureToSignatureDeclaration,
465465
symbolToEntityName: nodeBuilder.symbolToEntityName,
466466
symbolToExpression: nodeBuilder.symbolToExpression,
467+
symbolToNode: nodeBuilder.symbolToNode,
467468
symbolToTypeParameterDeclarations: nodeBuilder.symbolToTypeParameterDeclarations,
468469
symbolToParameterDeclaration: nodeBuilder.symbolToParameterDeclaration,
469470
typeParameterToDeclaration: nodeBuilder.typeParameterToDeclaration,
@@ -4822,8 +4823,8 @@ namespace ts {
48224823
if (flags & SymbolFormatFlags.DoNotIncludeSymbolChain) {
48234824
nodeFlags |= NodeBuilderFlags.DoNotIncludeSymbolChain;
48244825
}
4825-
if (flags & SymbolFormatFlags.AllowComputedPropertyEnums) {
4826-
nodeFlags |= NodeBuilderFlags.AllowComputedPropertyEnums;
4826+
if (flags & SymbolFormatFlags.WriteComputedProps) {
4827+
nodeFlags |= NodeBuilderFlags.WriteComputedProps;
48274828
}
48284829
const builder = flags & SymbolFormatFlags.AllowAnyNodeKind ? nodeBuilder.symbolToNode : nodeBuilder.symbolToEntityName;
48294830
return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker);
@@ -4927,11 +4928,15 @@ namespace ts {
49274928
};
49284929

49294930
function symbolToNode(symbol: Symbol, context: NodeBuilderContext, meaning: SymbolFlags) {
4930-
if (context.flags & NodeBuilderFlags.AllowComputedPropertyEnums) {
4931+
if (context.flags & NodeBuilderFlags.WriteComputedProps) {
4932+
if (symbol.valueDeclaration) {
4933+
const name = getNameOfDeclaration(symbol.valueDeclaration);
4934+
if (name && isComputedPropertyName(name)) return name;
4935+
}
49314936
const nameType = getSymbolLinks(symbol).nameType;
4932-
if (nameType && nameType.flags & TypeFlags.EnumLiteral) {
4933-
context.enclosingDeclaration = nameType.symbol.valueDeclaration;
4934-
return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, meaning));
4937+
if (nameType && nameType.flags & (TypeFlags.EnumLiteral | TypeFlags.UniqueESSymbol)) {
4938+
context.enclosingDeclaration = nameType.symbol.valueDeclaration;
4939+
return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, meaning));
49354940
}
49364941
}
49374942
return symbolToExpression(symbol, context, meaning);
@@ -20326,7 +20331,7 @@ namespace ts {
2032620331
shouldSkipElaboration = true; // Retain top-level error for interface implementing issues, otherwise omit it
2032720332
}
2032820333
if (props.length === 1) {
20329-
const propName = symbolToString(unmatchedProperty, /*enclosingDeclaration*/ undefined, SymbolFlags.None, SymbolFormatFlags.AllowAnyNodeKind | SymbolFormatFlags.AllowComputedPropertyEnums);
20334+
const propName = symbolToString(unmatchedProperty, /*enclosingDeclaration*/ undefined, SymbolFlags.None, SymbolFormatFlags.AllowAnyNodeKind | SymbolFormatFlags.WriteComputedProps);
2033020335
reportError(Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2, propName, ...getTypeNamesForErrorDisplay(source, target));
2033120336
if (length(unmatchedProperty.declarations)) {
2033220337
associateRelatedInfo(createDiagnosticForNode(unmatchedProperty.declarations![0], Diagnostics._0_is_declared_here, propName));

src/compiler/types.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4545,6 +4545,8 @@ namespace ts {
45454545
/** Note that the resulting nodes cannot be checked. */
45464546
symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Expression | undefined;
45474547
/** Note that the resulting nodes cannot be checked. */
4548+
symbolToNode(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Node | undefined;
4549+
/** Note that the resulting nodes cannot be checked. */
45484550
symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): NodeArray<TypeParameterDeclaration> | undefined;
45494551
/** Note that the resulting nodes cannot be checked. */
45504552
symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): ParameterDeclaration | undefined;
@@ -4822,7 +4824,7 @@ namespace ts {
48224824
AllowEmptyTuple = 1 << 19,
48234825
AllowUniqueESSymbolType = 1 << 20,
48244826
AllowEmptyIndexInfoType = 1 << 21,
4825-
AllowComputedPropertyEnums = 1 << 30,
4827+
WriteComputedProps = 1 << 30, // { [E.A]: 1 }
48264828

48274829
// Errors (cont.)
48284830
AllowNodeModulesRelativePaths = 1 << 26,
@@ -4872,14 +4874,14 @@ namespace ts {
48724874
InFirstTypeArgument = 1 << 22, // Writing first type argument of the instantiated type
48734875
InTypeAlias = 1 << 23, // Writing type in type alias declaration
48744876

4875-
AllowComputedPropertyEnums = 1 << 30,
4877+
WriteComputedProps = 1 << 30,
48764878

48774879
/** @deprecated */ WriteOwnNameForAnyLike = 0, // Does nothing
48784880

48794881
NodeBuilderFlagsMask = NoTruncation | WriteArrayAsGenericType | UseStructuralFallback | WriteTypeArgumentsOfSignature |
48804882
UseFullyQualifiedType | SuppressAnyReturnType | MultilineObjectLiterals | WriteClassExpressionAsTypeLiteral |
48814883
UseTypeOfFunction | OmitParameterModifiers | UseAliasDefinedOutsideCurrentScope | AllowUniqueESSymbolType | InTypeAlias |
4882-
UseSingleQuotesForStringLiteralType | NoTypeReduction | OmitThisParameter | AllowComputedPropertyEnums
4884+
UseSingleQuotesForStringLiteralType | NoTypeReduction | OmitThisParameter | WriteComputedProps
48834885
}
48844886

48854887
export const enum SymbolFormatFlags {
@@ -4903,7 +4905,7 @@ namespace ts {
49034905
UseAliasDefinedOutsideCurrentScope = 1 << 3,
49044906

49054907
// { [E.A]: 1 }
4906-
AllowComputedPropertyEnums = 1 << 4,
4908+
WriteComputedProps = 1 << 4,
49074909

49084910
// Skip building an accessible symbol chain
49094911
/* @internal */ DoNotIncludeSymbolChain = 1 << 5,

src/services/codefixes/fixAddMissingMember.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -642,12 +642,9 @@ namespace ts.codefix {
642642
}
643643

644644
function createPropertyNameFromSymbol(symbol: Symbol, target: ScriptTarget, quotePreference: QuotePreference, checker: TypeChecker) {
645-
if (isTransientSymbol(symbol) && symbol.nameType && symbol.nameType.flags & (TypeFlags.UniqueESSymbol | TypeFlags.EnumLiteral)) {
646-
const nameTypeSymbol = symbol.nameType.symbol;
647-
const expression = checker.symbolToExpression(nameTypeSymbol, SymbolFlags.Value, nameTypeSymbol.valueDeclaration, NodeBuilderFlags.AllowUniqueESSymbolType);
648-
if (expression) {
649-
return factory.createComputedPropertyName(expression);
650-
}
645+
if (isTransientSymbol(symbol)) {
646+
const prop = checker.symbolToNode(symbol, SymbolFlags.Value, /*enclosingDeclaration*/ undefined, NodeBuilderFlags.WriteComputedProps);
647+
if (prop && isComputedPropertyName(prop)) return prop;
651648
}
652649
return createPropertyNameNodeForIdentifierOrLiteral(symbol.name, target, quotePreference === QuotePreference.Single);
653650
}

tests/baselines/reference/api/tsserverlibrary.d.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2338,6 +2338,8 @@ declare namespace ts {
23382338
/** Note that the resulting nodes cannot be checked. */
23392339
symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Expression | undefined;
23402340
/** Note that the resulting nodes cannot be checked. */
2341+
symbolToNode(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Node | undefined;
2342+
/** Note that the resulting nodes cannot be checked. */
23412343
symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): NodeArray<TypeParameterDeclaration> | undefined;
23422344
/** Note that the resulting nodes cannot be checked. */
23432345
symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): ParameterDeclaration | undefined;
@@ -2436,7 +2438,7 @@ declare namespace ts {
24362438
AllowEmptyTuple = 524288,
24372439
AllowUniqueESSymbolType = 1048576,
24382440
AllowEmptyIndexInfoType = 2097152,
2439-
AllowComputedPropertyEnums = 1073741824,
2441+
WriteComputedProps = 1073741824,
24402442
AllowNodeModulesRelativePaths = 67108864,
24412443
IgnoreErrors = 70221824,
24422444
InObjectTypeLiteral = 4194304,
@@ -2466,7 +2468,7 @@ declare namespace ts {
24662468
InElementType = 2097152,
24672469
InFirstTypeArgument = 4194304,
24682470
InTypeAlias = 8388608,
2469-
AllowComputedPropertyEnums = 1073741824,
2471+
WriteComputedProps = 1073741824,
24702472
/** @deprecated */ WriteOwnNameForAnyLike = 0,
24712473
NodeBuilderFlagsMask = 1922071915
24722474
}
@@ -2476,7 +2478,7 @@ declare namespace ts {
24762478
UseOnlyExternalAliasing = 2,
24772479
AllowAnyNodeKind = 4,
24782480
UseAliasDefinedOutsideCurrentScope = 8,
2479-
AllowComputedPropertyEnums = 16,
2481+
WriteComputedProps = 16,
24802482
}
24812483
export enum TypePredicateKind {
24822484
This = 0,

tests/baselines/reference/api/typescript.d.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2338,6 +2338,8 @@ declare namespace ts {
23382338
/** Note that the resulting nodes cannot be checked. */
23392339
symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Expression | undefined;
23402340
/** Note that the resulting nodes cannot be checked. */
2341+
symbolToNode(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): Node | undefined;
2342+
/** Note that the resulting nodes cannot be checked. */
23412343
symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): NodeArray<TypeParameterDeclaration> | undefined;
23422344
/** Note that the resulting nodes cannot be checked. */
23432345
symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration: Node | undefined, flags: NodeBuilderFlags | undefined): ParameterDeclaration | undefined;
@@ -2436,7 +2438,7 @@ declare namespace ts {
24362438
AllowEmptyTuple = 524288,
24372439
AllowUniqueESSymbolType = 1048576,
24382440
AllowEmptyIndexInfoType = 2097152,
2439-
AllowComputedPropertyEnums = 1073741824,
2441+
WriteComputedProps = 1073741824,
24402442
AllowNodeModulesRelativePaths = 67108864,
24412443
IgnoreErrors = 70221824,
24422444
InObjectTypeLiteral = 4194304,
@@ -2466,7 +2468,7 @@ declare namespace ts {
24662468
InElementType = 2097152,
24672469
InFirstTypeArgument = 4194304,
24682470
InTypeAlias = 8388608,
2469-
AllowComputedPropertyEnums = 1073741824,
2471+
WriteComputedProps = 1073741824,
24702472
/** @deprecated */ WriteOwnNameForAnyLike = 0,
24712473
NodeBuilderFlagsMask = 1922071915
24722474
}
@@ -2476,7 +2478,7 @@ declare namespace ts {
24762478
UseOnlyExternalAliasing = 2,
24772479
AllowAnyNodeKind = 4,
24782480
UseAliasDefinedOutsideCurrentScope = 8,
2479-
AllowComputedPropertyEnums = 16,
2481+
WriteComputedProps = 16,
24802482
}
24812483
export enum TypePredicateKind {
24822484
This = 0,

0 commit comments

Comments
 (0)