diff --git a/src/services/services.ts b/src/services/services.ts index 5e5c8b7839e..3dac6bbd5d7 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3838,27 +3838,32 @@ module ts { var modifierFlag: NodeFlags = getFlagFromModifier(modifier); var nodes: Node[]; - if (container.kind === SyntaxKind.ModuleBlock) { - nodes = (container).statements; - } - else if (container.kind === SyntaxKind.ClassDeclaration) { - nodes = (container).members; + switch (container.kind) { + case SyntaxKind.ModuleBlock: + case SyntaxKind.SourceFile: + nodes = (container).statements; + break; + case SyntaxKind.ClassDeclaration: + nodes = (container).members; - // If we're an accessibility modifier, we should search the constructor's parameter list - // as well (i.e. don't look for 'static' parameters). - if (modifierFlag & NodeFlags.AccessibilityModifier) { - var constructor = forEach((container).members, member => { - return member.kind === SyntaxKind.Constructor && member; - }); + // If we're an accessibility modifier, we should search the constructor's parameter list + // as well (i.e. don't look for 'static' parameters). + if (modifierFlag & NodeFlags.AccessibilityModifier) { + var constructor = forEach((container).members, member => { + return member.kind === SyntaxKind.Constructor && member; + }); - if (constructor) { - nodes = nodes.concat(constructor.parameters); + if (constructor) { + nodes = nodes.concat(constructor.parameters); + } } - } - } - else if (container.kind === SyntaxKind.Constructor) { - nodes = ((container).parameters).concat( - (container.parent).members); + break; + case SyntaxKind.Constructor: + nodes = ((container).parameters).concat( + (container.parent).members); + break; + default: + Debug.fail("Invalid container kind.") } forEach(nodes, node => {