Skip to content

Commit 766e83f

Browse files
committed
Inline const enum in import equals declaration
1 parent 5142e37 commit 766e83f

File tree

3 files changed

+10
-15
lines changed

3 files changed

+10
-15
lines changed

src/compiler/checker.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41611,22 +41611,18 @@ namespace ts {
4161141611
return getNodeLinks(node).enumMemberValue;
4161241612
}
4161341613

41614-
function canHaveConstantValue(node: Node): node is EnumMember | AccessExpression {
41615-
switch (node.kind) {
41616-
case SyntaxKind.EnumMember:
41617-
case SyntaxKind.PropertyAccessExpression:
41618-
case SyntaxKind.ElementAccessExpression:
41619-
return true;
41620-
}
41621-
return false;
41614+
function canHaveConstantValue(node: Node): node is EnumMember | EntityName | AccessExpression {
41615+
return isEnumMember(node) || isEntityName(node) || isAccessExpression(node);
4162241616
}
4162341617

41624-
function getConstantValue(node: EnumMember | AccessExpression): string | number | undefined {
41618+
function getConstantValue(node: EnumMember | EntityName | AccessExpression): string | number | undefined {
4162541619
if (node.kind === SyntaxKind.EnumMember) {
4162641620
return getEnumMemberValue(node);
4162741621
}
4162841622

41629-
const symbol = getNodeLinks(node).resolvedSymbol;
41623+
const symbol = isEntityName(node)
41624+
? resolveEntityName(node, SymbolFlags.EnumMember)
41625+
: getNodeLinks(node).resolvedSymbol;
4163041626
if (symbol && (symbol.flags & SymbolFlags.EnumMember)) {
4163141627
// inline property\index accesses only for const enums
4163241628
const member = symbol.valueDeclaration as EnumMember;

src/compiler/factory/utilities.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ namespace ts {
162162
const left = createExpressionFromEntityName(factory, node.left);
163163
// TODO(rbuckton): Does this need to be parented?
164164
const right = setParent(setTextRange(factory.cloneNode(node.right), node.right), node.right.parent);
165-
return setTextRange(factory.createPropertyAccessExpression(left, right), node);
165+
return setOriginalNode(setTextRange(factory.createPropertyAccessExpression(left, right), node), node);
166166
}
167167
else {
168168
// TODO(rbuckton): Does this need to be parented?

src/compiler/transformers/ts.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3342,10 +3342,9 @@ namespace ts {
33423342

33433343
const substitute = typeof constantValue === "string" ? factory.createStringLiteral(constantValue) : factory.createNumericLiteral(constantValue);
33443344
if (!compilerOptions.removeComments) {
3345-
const originalNode = getOriginalNode(node, isAccessExpression);
3346-
const propertyName = isPropertyAccessExpression(originalNode)
3347-
? declarationNameToString(originalNode.name)
3348-
: getTextOfNode(originalNode.argumentExpression);
3345+
const propertyName = isPropertyAccessExpression(node)
3346+
? declarationNameToString(node.name)
3347+
: getTextOfNode(node.argumentExpression);
33493348

33503349
addSyntheticTrailingComment(substitute, SyntaxKind.MultiLineCommentTrivia, ` ${propertyName} `);
33513350
}

0 commit comments

Comments
 (0)