Restore arrow function.

This commit is contained in:
Daniel Rosenwasser 2016-09-27 14:17:11 -07:00
parent 1fbdb86202
commit e0c35f2c82

View file

@ -224,7 +224,7 @@ namespace ts {
: visitorWorker(node);
}
function saveStateAndInvoke<T>(node: Node, f: (node: Node) => T): T {
function saveStateAndInvoke<T extends Node, U>(node: T, f: (node: T) => U): U {
const savedEnclosingFunction = enclosingFunction;
const savedEnclosingNonArrowFunction = enclosingNonArrowFunction;
const savedEnclosingNonAsyncFunctionBody = enclosingNonAsyncFunctionBody;
@ -867,7 +867,7 @@ namespace ts {
}
if (constructor) {
const body = saveStateAndInvoke(constructor, makeTransformerForConstructorBodyAtOffset(statementOffset));
const body = saveStateAndInvoke(constructor, constructor => visitNodes(constructor.body.statements, visitor, isStatement, /*start*/ statementOffset));
addRange(statements, body);
}
@ -900,10 +900,6 @@ namespace ts {
return block;
}
function makeTransformerForConstructorBodyAtOffset(offset: number): (c: ConstructorDeclaration) => NodeArray<Statement> {
return constructor => visitNodes(constructor.body.statements, visitor, isStatement, /*start*/ offset);
}
/**
* We want to try to avoid emitting a return statement in certain cases if a user already returned something.
* It would be pointless and generate dead code, so we'll try to make things a little bit prettier