From 499ca7969c9d8469091b171e2f4f4b8ae714cf03 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Wed, 5 Oct 2016 10:57:16 -0700 Subject: [PATCH] Change the memberTypes of an EnumType to a (possibly sparse, but probably not ) array. --- src/compiler/checker.ts | 8 ++++---- src/compiler/types.ts | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 78408e13af7..e8d2bacac63 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3868,15 +3868,15 @@ namespace ts { enumType.symbol = symbol; if (enumHasLiteralMembers(symbol)) { const memberTypeList: Type[] = []; - const memberTypes = new NumberMap(); + const memberTypes: { [enumMemberValue: number]: EnumLiteralType } = []; for (const declaration of enumType.symbol.declarations) { if (declaration.kind === SyntaxKind.EnumDeclaration) { computeEnumMemberValues(declaration); for (const member of (declaration).members) { const memberSymbol = getSymbolOfNode(member); const value = getEnumMemberValue(member); - if (!memberTypes.get(value)) { - memberTypeList.push(setAndReturn(memberTypes, value, createEnumLiteralType(memberSymbol, enumType, "" + value))); + if (!memberTypes[value]) { + memberTypeList.push(memberTypes[value] = createEnumLiteralType(memberSymbol, enumType, "" + value)); } } } @@ -3897,7 +3897,7 @@ namespace ts { if (!links.declaredType) { const enumType = getDeclaredTypeOfEnum(getParentOfSymbol(symbol)); links.declaredType = enumType.flags & TypeFlags.Union ? - enumType.memberTypes.get(getEnumMemberValue(symbol.valueDeclaration)) : + enumType.memberTypes[getEnumMemberValue(symbol.valueDeclaration)] : enumType; } return links.declaredType; diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 3a92904fd7e..1b180c923c1 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -2483,7 +2483,7 @@ namespace ts { // Enum types (TypeFlags.Enum) export interface EnumType extends Type { - memberTypes: Map; + memberTypes: { [enumMemberValue: number]: EnumLiteralType }; } // Enum types (TypeFlags.EnumLiteral)