Skip to content

Commit d566eb5

Browse files
author
Andy Hanson
committed
Change the memberTypes of an EnumType to a (possibly sparse, but probably not ) array.
1 parent 4ca311a commit d566eb5

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
@@ -3868,15 +3868,15 @@ namespace ts {
38683868
enumType.symbol = symbol;
38693869
if (enumHasLiteralMembers(symbol)) {
38703870
const memberTypeList: Type[] = [];
3871-
const memberTypes = new NumberMap<number, EnumLiteralType>();
3871+
const memberTypes: { [enumMemberValue: number]: EnumLiteralType } = [];
38723872
for (const declaration of enumType.symbol.declarations) {
38733873
if (declaration.kind === SyntaxKind.EnumDeclaration) {
38743874
computeEnumMemberValues(<EnumDeclaration>declaration);
38753875
for (const member of (<EnumDeclaration>declaration).members) {
38763876
const memberSymbol = getSymbolOfNode(member);
38773877
const value = getEnumMemberValue(member);
3878-
if (!memberTypes.get(value)) {
3879-
memberTypeList.push(setAndReturn(memberTypes, value, createEnumLiteralType(memberSymbol, enumType, "" + value)));
3878+
if (!memberTypes[value]) {
3879+
memberTypeList.push(memberTypes[value] = createEnumLiteralType(memberSymbol, enumType, "" + value));
38803880
}
38813881
}
38823882
}
@@ -3897,7 +3897,7 @@ namespace ts {
38973897
if (!links.declaredType) {
38983898
const enumType = <EnumType>getDeclaredTypeOfEnum(getParentOfSymbol(symbol));
38993899
links.declaredType = enumType.flags & TypeFlags.Union ?
3900-
enumType.memberTypes.get(getEnumMemberValue(<EnumDeclaration>symbol.valueDeclaration)) :
3900+
enumType.memberTypes[getEnumMemberValue(<EnumDeclaration>symbol.valueDeclaration)] :
39013901
enumType;
39023902
}
39033903
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)