Skip to content

Commit 34db0ed

Browse files
author
Andy Hanson
committed
Change the memberTypes of an EnumType to a (possibly sparse, but probably not ) array.
1 parent 6fc4ead commit 34db0ed

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/compiler/checker.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3863,15 +3863,15 @@ namespace ts {
38633863
enumType.symbol = symbol;
38643864
if (enumHasLiteralMembers(symbol)) {
38653865
const memberTypeList: Type[] = [];
3866-
const memberTypes = new NumberMap<number, EnumLiteralType>();
3866+
const memberTypes: { [enumMemberValue: number]: EnumLiteralType } = [];
38673867
for (const declaration of enumType.symbol.declarations) {
38683868
if (declaration.kind === SyntaxKind.EnumDeclaration) {
38693869
computeEnumMemberValues(<EnumDeclaration>declaration);
38703870
for (const member of (<EnumDeclaration>declaration).members) {
38713871
const memberSymbol = getSymbolOfNode(member);
38723872
const value = getEnumMemberValue(member);
3873-
if (!memberTypes.get(value)) {
3874-
memberTypeList.push(setAndReturn(memberTypes, value, createEnumLiteralType(memberSymbol, enumType, "" + value)));
3873+
if (!memberTypes[value]) {
3874+
memberTypeList.push(memberTypes[value] = createEnumLiteralType(memberSymbol, enumType, "" + value));
38753875
}
38763876
}
38773877
}
@@ -3892,7 +3892,7 @@ namespace ts {
38923892
if (!links.declaredType) {
38933893
const enumType = <EnumType>getDeclaredTypeOfEnum(getParentOfSymbol(symbol));
38943894
links.declaredType = enumType.flags & TypeFlags.Union ?
3895-
enumType.memberTypes.get(getEnumMemberValue(<EnumDeclaration>symbol.valueDeclaration)) :
3895+
enumType.memberTypes[getEnumMemberValue(<EnumDeclaration>symbol.valueDeclaration)] :
38963896
enumType;
38973897
}
38983898
return links.declaredType;

src/compiler/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2483,7 +2483,7 @@ namespace ts {
24832483

24842484
// Enum types (TypeFlags.Enum)
24852485
export interface EnumType extends Type {
2486-
memberTypes: Map<number, EnumLiteralType>;
2486+
memberTypes: { [enumMemberValue: number]: EnumLiteralType };
24872487
}
24882488

24892489
// Enum types (TypeFlags.EnumLiteral)

0 commit comments

Comments
 (0)