@@ -53,23 +53,33 @@ type NodeFactory struct {
53
53
blockPool core.Pool [Block ]
54
54
callExpressionPool core.Pool [CallExpression ]
55
55
expressionStatementPool core.Pool [ExpressionStatement ]
56
+ functionDeclarationPool core.Pool [FunctionDeclaration ]
57
+ functionTypeNodePool core.Pool [FunctionTypeNode ]
56
58
identifierPool core.Pool [Identifier ]
57
59
ifStatementPool core.Pool [IfStatement ]
60
+ interfaceDeclarationPool core.Pool [InterfaceDeclaration ]
58
61
jsdocPool core.Pool [JSDoc ]
59
62
jsdocTextPool core.Pool [JSDocText ]
63
+ keywordExpressionPool core.Pool [KeywordExpression ]
60
64
keywordTypeNodePool core.Pool [KeywordTypeNode ]
61
65
literalTypeNodePool core.Pool [LiteralTypeNode ]
66
+ methodSignatureDeclarationPool core.Pool [MethodSignatureDeclaration ]
62
67
modifierListPool core.Pool [ModifierList ]
63
68
nodeListPool core.Pool [NodeList ]
69
+ numericLiteralPool core.Pool [NumericLiteral ]
64
70
parameterDeclarationPool core.Pool [ParameterDeclaration ]
65
71
parenthesizedExpressionPool core.Pool [ParenthesizedExpression ]
72
+ parenthesizedTypeNodePool core.Pool [ParenthesizedTypeNode ]
73
+ prefixUnaryExpressionPool core.Pool [PrefixUnaryExpression ]
66
74
propertyAccessExpressionPool core.Pool [PropertyAccessExpression ]
67
75
propertyAssignmentPool core.Pool [PropertyAssignment ]
68
76
propertySignatureDeclarationPool core.Pool [PropertySignatureDeclaration ]
69
77
returnStatementPool core.Pool [ReturnStatement ]
70
78
stringLiteralPool core.Pool [StringLiteral ]
71
79
tokenPool core.Pool [Token ]
80
+ typeLiteralNodePool core.Pool [TypeLiteralNode ]
72
81
typeReferenceNodePool core.Pool [TypeReferenceNode ]
82
+ unionTypeNodePool core.Pool [UnionTypeNode ]
73
83
variableDeclarationListPool core.Pool [VariableDeclarationList ]
74
84
variableDeclarationPool core.Pool [VariableDeclaration ]
75
85
variableStatementPool core.Pool [VariableStatement ]
@@ -3466,7 +3476,7 @@ type FunctionDeclaration struct {
3466
3476
}
3467
3477
3468
3478
func (f * NodeFactory ) NewFunctionDeclaration (modifiers * ModifierList , asteriskToken * TokenNode , name * IdentifierNode , typeParameters * NodeList , parameters * NodeList , returnType * TypeNode , body * BlockNode ) * Node {
3469
- data := & FunctionDeclaration {}
3479
+ data := f . functionDeclarationPool . New ()
3470
3480
data .modifiers = modifiers
3471
3481
data .AsteriskToken = asteriskToken
3472
3482
data .name = name
@@ -3722,7 +3732,7 @@ type InterfaceDeclaration struct {
3722
3732
}
3723
3733
3724
3734
func (f * NodeFactory ) NewInterfaceDeclaration (modifiers * ModifierList , name * IdentifierNode , typeParameters * NodeList , heritageClauses * NodeList , members * NodeList ) * Node {
3725
- data := & InterfaceDeclaration {}
3735
+ data := f . interfaceDeclarationPool . New ()
3726
3736
data .modifiers = modifiers
3727
3737
data .name = name
3728
3738
data .TypeParameters = typeParameters
@@ -5124,7 +5134,7 @@ type MethodSignatureDeclaration struct {
5124
5134
}
5125
5135
5126
5136
func (f * NodeFactory ) NewMethodSignatureDeclaration (modifiers * ModifierList , name * PropertyName , postfixToken * TokenNode , typeParameters * NodeList , parameters * NodeList , returnType * TypeNode ) * Node {
5127
- data := & MethodSignatureDeclaration {}
5137
+ data := f . methodSignatureDeclarationPool . New ()
5128
5138
data .modifiers = modifiers
5129
5139
data .name = name
5130
5140
data .PostfixToken = postfixToken
@@ -5433,7 +5443,7 @@ type KeywordExpression struct {
5433
5443
}
5434
5444
5435
5445
func (f * NodeFactory ) NewKeywordExpression (kind Kind ) * Node {
5436
- return f .newNode (kind , & KeywordExpression {} )
5446
+ return f .newNode (kind , f . keywordExpressionPool . New () )
5437
5447
}
5438
5448
5439
5449
func (node * KeywordExpression ) Clone (f NodeFactoryCoercible ) * Node {
@@ -5489,7 +5499,7 @@ type NumericLiteral struct {
5489
5499
}
5490
5500
5491
5501
func (f * NodeFactory ) NewNumericLiteral (text string ) * Node {
5492
- data := & NumericLiteral {}
5502
+ data := f . numericLiteralPool . New ()
5493
5503
data .Text = text
5494
5504
f .textCount ++
5495
5505
return f .newNode (KindNumericLiteral , data )
@@ -5638,7 +5648,7 @@ type PrefixUnaryExpression struct {
5638
5648
}
5639
5649
5640
5650
func (f * NodeFactory ) NewPrefixUnaryExpression (operator Kind , operand * Expression ) * Node {
5641
- data := & PrefixUnaryExpression {}
5651
+ data := f . prefixUnaryExpressionPool . New ()
5642
5652
data .Operator = operator
5643
5653
data .Operand = operand
5644
5654
return f .newNode (KindPrefixUnaryExpression , data )
@@ -7035,7 +7045,7 @@ func (f *NodeFactory) UpdateUnionTypeNode(node *UnionTypeNode, types *TypeList)
7035
7045
}
7036
7046
7037
7047
func (f * NodeFactory ) NewUnionTypeNode (types * NodeList ) * Node {
7038
- data := & UnionTypeNode {}
7048
+ data := f . unionTypeNodePool . New ()
7039
7049
data .Types = types
7040
7050
return f .newNode (KindUnionType , data )
7041
7051
}
@@ -7718,7 +7728,7 @@ type TypeLiteralNode struct {
7718
7728
}
7719
7729
7720
7730
func (f * NodeFactory ) NewTypeLiteralNode (members * NodeList ) * Node {
7721
- data := & TypeLiteralNode {}
7731
+ data := f . typeLiteralNodePool . New ()
7722
7732
data .Members = members
7723
7733
return f .newNode (KindTypeLiteral , data )
7724
7734
}
@@ -7909,7 +7919,7 @@ type ParenthesizedTypeNode struct {
7909
7919
}
7910
7920
7911
7921
func (f * NodeFactory ) NewParenthesizedTypeNode (typeNode * TypeNode ) * Node {
7912
- data := & ParenthesizedTypeNode {}
7922
+ data := f . parenthesizedTypeNodePool . New ()
7913
7923
data .Type = typeNode
7914
7924
return f .newNode (KindParenthesizedType , data )
7915
7925
}
@@ -7957,7 +7967,7 @@ type FunctionTypeNode struct {
7957
7967
}
7958
7968
7959
7969
func (f * NodeFactory ) NewFunctionTypeNode (typeParameters * NodeList , parameters * NodeList , returnType * TypeNode ) * Node {
7960
- data := & FunctionTypeNode {}
7970
+ data := f . functionTypeNodePool . New ()
7961
7971
data .TypeParameters = typeParameters
7962
7972
data .Parameters = parameters
7963
7973
data .Type = returnType
0 commit comments