Addressed CR feedback.

This commit is contained in:
Daniel Rosenwasser
2014-09-05 15:58:22 -07:00
parent 84e385ddfa
commit 024ca6d6ac
3 changed files with 24 additions and 34 deletions
+6 -10
View File
@@ -407,13 +407,18 @@ module ts {
}
}
export function getThisContainerOrArrowFunction(node: Node): Node {
export function getThisContainer(node: Node, includeArrowFunctions: boolean): Node {
while (true) {
node = node.parent;
if (!node) {
return node;
}
switch (node.kind) {
case SyntaxKind.ArrowFunction:
if (!includeArrowFunctions) {
continue;
}
// Fall through
case SyntaxKind.FunctionDeclaration:
case SyntaxKind.FunctionExpression:
case SyntaxKind.ModuleDeclaration:
@@ -424,20 +429,11 @@ module ts {
case SyntaxKind.SetAccessor:
case SyntaxKind.EnumDeclaration:
case SyntaxKind.SourceFile:
case SyntaxKind.ArrowFunction:
return node;
}
}
}
export function getThisContainer(node: Node): Node {
do {
node = getThisContainerOrArrowFunction(node);
} while (node.kind === SyntaxKind.ArrowFunction);
return node;
}
export function hasRestParameters(s: SignatureDeclaration): boolean {
return s.parameters.length > 0 && (s.parameters[s.parameters.length - 1].flags & NodeFlags.Rest) !== 0;
}