From cb472eb52c791284e307ba46df271ac91ebdb002 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Mon, 27 Oct 2014 00:17:22 -0700 Subject: [PATCH] move code around to consolidate checks in one place --- src/compiler/checker.ts | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 014fba97388..41dfd35b8ca 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7494,27 +7494,25 @@ module ts { if (e.kind === SyntaxKind.Identifier) { // unqualified names can refer to member that reside in different declaration of the enum so just doing name resolution won't work. - // instead pick symbol that correspond of enum declaration and later try to fetch member from the symbol + // instead pick current enum type and later try to fetch member from the type enumType = currentType; propertyName = (e).text; } - else if (e.kind === SyntaxKind.IndexedAccess) { - if ((e).index.kind !== SyntaxKind.StringLiteral) { - return undefined; - } - var enumType = getTypeOfNode((e).object); - if (enumType !== currentType) { - return undefined; - } - propertyName = ((e).index).text; - } else { - // left part in PropertyAccess should be resolved to the symbol of enum that declared 'member' - var enumType = getTypeOfNode((e).left); + if (e.kind === SyntaxKind.IndexedAccess) { + if ((e).index.kind !== SyntaxKind.StringLiteral) { + return undefined; + } + var enumType = getTypeOfNode((e).object); + propertyName = ((e).index).text; + } + else { + var enumType = getTypeOfNode((e).left); + propertyName = (e).right.text; + } if (enumType !== currentType) { return undefined; } - propertyName = (e).right.text; } if (propertyName === undefined) {