Added location parameter to argument list for create functions
This commit is contained in:
parent
b6207f2f36
commit
e5fce042ca
|
@ -825,29 +825,21 @@ function generate(outputFile: string) {
|
|||
function writeCreateFunction(syntaxNode: SyntaxNode) {
|
||||
writer.write(`export function create${syntaxNode.kindName}(`);
|
||||
|
||||
let first = true;
|
||||
for (let member of syntaxNode.members) {
|
||||
if (!first) {
|
||||
writer.write(`, `);
|
||||
}
|
||||
else {
|
||||
first = false;
|
||||
}
|
||||
|
||||
let type =
|
||||
member.isNodeArray ? `Array<${member.elementTypeName}>` :
|
||||
member.isModifiersArray ? `Array<Node>` :
|
||||
member.typeName;
|
||||
|
||||
writer.write(`${member.paramName}?: ${type}`);
|
||||
writer.write(`${member.paramName}?: ${type}, `);
|
||||
}
|
||||
|
||||
writer.write(`): ${syntaxNode.typeName} {`);
|
||||
writer.write(`location?: TextRange): ${syntaxNode.typeName} {`);
|
||||
writer.writeLine();
|
||||
|
||||
writer.increaseIndent();
|
||||
if (syntaxNode.members.length) {
|
||||
writer.write(`let node = createNode<${syntaxNode.typeName}>(SyntaxKind.${syntaxNode.kindName});`);
|
||||
writer.write(`let node = createNode<${syntaxNode.typeName}>(SyntaxKind.${syntaxNode.kindName}, location);`);
|
||||
writer.writeLine();
|
||||
if (syntaxNode.members.length > 1) {
|
||||
writer.write(`if (arguments.length) {`);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -49,21 +49,21 @@ namespace ts {
|
|||
return newNode;
|
||||
}
|
||||
|
||||
export function createNode<T extends Node>(kind: SyntaxKind): T {
|
||||
return <T>new (getNodeConstructor(kind))();
|
||||
export function createNode<T extends Node>(kind: SyntaxKind, location?: TextRange): T {
|
||||
return setTextRange(<T>new (getNodeConstructor(kind))(), location);
|
||||
}
|
||||
|
||||
export function createNodeArray<TNode extends Node>(elements?: TNode[]) {
|
||||
export function createNodeArray<TNode extends Node>(elements?: TNode[], location?: TextRange) {
|
||||
let nodes = <NodeArray<TNode>>(elements || []);
|
||||
if (nodes.pos === undefined) {
|
||||
nodes.pos = -1;
|
||||
nodes.end = -1;
|
||||
}
|
||||
|
||||
return nodes;
|
||||
return setTextRange(nodes, location);
|
||||
}
|
||||
|
||||
export function createModifiersArray(elements?: Node[]) {
|
||||
export function createModifiersArray(elements?: Node[], location?: TextRange) {
|
||||
let modifiers = <ModifiersArray>(elements || []);
|
||||
if (modifiers.flags === undefined) {
|
||||
let flags = 0;
|
||||
|
@ -74,7 +74,7 @@ namespace ts {
|
|||
modifiers.flags = flags;
|
||||
}
|
||||
|
||||
return modifiers;
|
||||
return setTextRange(modifiers, location);
|
||||
}
|
||||
|
||||
export function createSourceFile(): SourceFile {
|
||||
|
|
Loading…
Reference in a new issue