diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 19486a52379..d6e5bbf7d10 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3622,16 +3622,19 @@ module ts { function dispatch(node: Node, kind: SyntaxKind): void { switch (kind) { - case SyntaxKind.ArrowFunction: return visitArrowFunction(node); + case SyntaxKind.ArrowFunction: + case SyntaxKind.CallSignature: + case SyntaxKind.ConstructorType: + case SyntaxKind.ConstructSignature: + case SyntaxKind.FunctionType: + checkParsedSignature(node); + break; case SyntaxKind.BinaryExpression: return visitBinaryExpression(node); case SyntaxKind.BreakStatement: return visitBreakOrContinueStatement(node); case SyntaxKind.CallExpression: return visitCallExpression(node); - case SyntaxKind.CallSignature: return visitCallSignature(node); case SyntaxKind.CatchBlock: return visitCatchBlock(node); case SyntaxKind.ClassDeclaration: return visitClassDeclaration(node); case SyntaxKind.Constructor: return visitConstructor(node); - case SyntaxKind.ConstructorType: return visitConstructorType(node); - case SyntaxKind.ConstructSignature: return visitConstructSignature(node); case SyntaxKind.ContinueStatement: return visitBreakOrContinueStatement(node); case SyntaxKind.EnumDeclaration: return visitEnumDeclaration(node); case SyntaxKind.ExportAssignment: return visitExportAssignment(node); @@ -3639,7 +3642,6 @@ module ts { case SyntaxKind.ForStatement: return visitForStatement(node); case SyntaxKind.FunctionDeclaration: return visitFunctionDeclaration(node); case SyntaxKind.FunctionExpression: return visitFunctionExpression(node); - case SyntaxKind.FunctionType: return visitFunctionType(node); case SyntaxKind.GetAccessor: return visitGetAccessor(node); case SyntaxKind.IndexedAccess: return visitIndexedAccess(node); case SyntaxKind.IndexSignature: return visitIndexSignature(node); @@ -3723,8 +3725,7 @@ module ts { if (node.kind === SyntaxKind.InterfaceDeclaration || node.kind === SyntaxKind.ImportDeclaration || node.kind === SyntaxKind.ExportAssignment || - (node.flags & NodeFlags.Ambient) /* - (node.flags & NodeFlags.Export) */) { + (node.flags & NodeFlags.Ambient)) { return false; } @@ -3756,10 +3757,6 @@ module ts { } } - function visitArrowFunction(node: FunctionExpression) { - checkParsedSignature(node); - } - function checkParsedSignature(node: ParsedSignature): boolean { return checkTypeParameterList(node.typeParameters) || checkParameterList(node.parameters); @@ -3921,10 +3918,6 @@ module ts { } } - function visitCallSignature(node: ConstructorDeclaration) { - checkParsedSignature(node); - } - function visitCatchBlock(node: CatchBlock) { if (node.type) { var colonStart = skipTrivia(sourceText, node.variable.end); @@ -3967,14 +3960,6 @@ module ts { } } - function visitConstructorType(node: SignatureDeclaration) { - checkParsedSignature(node); - } - - function visitConstructSignature(node: FunctionLikeDeclaration) { - checkParsedSignature(node); - } - function visitEnumDeclaration(enumDecl: EnumDeclaration) { checkEnumInitializer(enumDecl); } @@ -4068,10 +4053,6 @@ module ts { } } - function visitFunctionType(node: SignatureDeclaration) { - checkParsedSignature(node); - } - function visitGetAccessor(node: MethodDeclaration) { checkParsedSignature(node) || checkAccessor(node);