Merge pull request #10345 from Microsoft/meaning

Use an enum in checkClassForDuplicateDeclarations to make it prettier
This commit is contained in:
Andy 2016-08-15 13:18:06 -07:00 committed by GitHub
commit 7ee05ba809

View file

@ -13794,15 +13794,19 @@ namespace ts {
} }
function checkClassForDuplicateDeclarations(node: ClassLikeDeclaration) { function checkClassForDuplicateDeclarations(node: ClassLikeDeclaration) {
const getter = 1, setter = 2, property = getter | setter; const enum Accessor {
Getter = 1,
Setter = 2,
Property = Getter | Setter
}
const instanceNames = createMap<number>(); const instanceNames = createMap<Accessor>();
const staticNames = createMap<number>(); const staticNames = createMap<Accessor>();
for (const member of node.members) { for (const member of node.members) {
if (member.kind === SyntaxKind.Constructor) { if (member.kind === SyntaxKind.Constructor) {
for (const param of (member as ConstructorDeclaration).parameters) { for (const param of (member as ConstructorDeclaration).parameters) {
if (isParameterPropertyDeclaration(param)) { if (isParameterPropertyDeclaration(param)) {
addName(instanceNames, param.name, (param.name as Identifier).text, property); addName(instanceNames, param.name, (param.name as Identifier).text, Accessor.Property);
} }
} }
} }
@ -13814,22 +13818,22 @@ namespace ts {
if (memberName) { if (memberName) {
switch (member.kind) { switch (member.kind) {
case SyntaxKind.GetAccessor: case SyntaxKind.GetAccessor:
addName(names, member.name, memberName, getter); addName(names, member.name, memberName, Accessor.Getter);
break; break;
case SyntaxKind.SetAccessor: case SyntaxKind.SetAccessor:
addName(names, member.name, memberName, setter); addName(names, member.name, memberName, Accessor.Setter);
break; break;
case SyntaxKind.PropertyDeclaration: case SyntaxKind.PropertyDeclaration:
addName(names, member.name, memberName, property); addName(names, member.name, memberName, Accessor.Property);
break; break;
} }
} }
} }
} }
function addName(names: Map<number>, location: Node, name: string, meaning: number) { function addName(names: Map<Accessor>, location: Node, name: string, meaning: Accessor) {
const prev = names[name]; const prev = names[name];
if (prev) { if (prev) {
if (prev & meaning) { if (prev & meaning) {