@@ -548,8 +548,8 @@ func (n *Node) Type() *Node {
548
548
return n .AsTemplateLiteralTypeSpan ().Type
549
549
case KindJSDocTypeExpression :
550
550
return n .AsJSDocTypeExpression ().Type
551
- case KindJSDocPropertyTag :
552
- return n .AsJSDocPropertyTag ().TypeExpression
551
+ case KindJSDocParameterTag , KindJSDocPropertyTag :
552
+ return n .AsJSDocParameterOrPropertyTag ().TypeExpression
553
553
case KindJSDocNullableType :
554
554
return n .AsJSDocNullableType ().Type
555
555
case KindJSDocNonNullableType :
@@ -623,8 +623,8 @@ func (n *Node) TagName() *Node {
623
623
return n .AsJSDocCallbackTag ().TagName
624
624
case KindJSDocOverloadTag :
625
625
return n .AsJSDocOverloadTag ().TagName
626
- case KindJSDocParameterTag :
627
- return n .AsJSDocParameterTag ().TagName
626
+ case KindJSDocParameterTag , KindJSDocPropertyTag :
627
+ return n .AsJSDocParameterOrPropertyTag ().TagName
628
628
case KindJSDocReturnTag :
629
629
return n .AsJSDocReturnTag ().TagName
630
630
case KindJSDocThisTag :
@@ -637,8 +637,6 @@ func (n *Node) TagName() *Node {
637
637
return n .AsJSDocTypedefTag ().TagName
638
638
case KindJSDocSeeTag :
639
639
return n .AsJSDocSeeTag ().TagName
640
- case KindJSDocPropertyTag :
641
- return n .AsJSDocPropertyTag ().TagName
642
640
case KindJSDocSatisfiesTag :
643
641
return n .AsJSDocSatisfiesTag ().TagName
644
642
case KindJSDocImportTag :
@@ -709,8 +707,8 @@ func (n *Node) CommentList() *NodeList {
709
707
return n .AsJSDocCallbackTag ().Comment
710
708
case KindJSDocOverloadTag :
711
709
return n .AsJSDocOverloadTag ().Comment
712
- case KindJSDocParameterTag :
713
- return n .AsJSDocParameterTag ().Comment
710
+ case KindJSDocParameterTag , KindJSDocPropertyTag :
711
+ return n .AsJSDocParameterOrPropertyTag ().Comment
714
712
case KindJSDocReturnTag :
715
713
return n .AsJSDocReturnTag ().Comment
716
714
case KindJSDocThisTag :
@@ -723,8 +721,6 @@ func (n *Node) CommentList() *NodeList {
723
721
return n .AsJSDocTypedefTag ().Comment
724
722
case KindJSDocSeeTag :
725
723
return n .AsJSDocSeeTag ().Comment
726
- case KindJSDocPropertyTag :
727
- return n .AsJSDocPropertyTag ().Comment
728
724
case KindJSDocSatisfiesTag :
729
725
return n .AsJSDocSatisfiesTag ().Comment
730
726
case KindJSDocImportTag :
@@ -1520,12 +1516,8 @@ func (n *Node) AsJSDocTemplateTag() *JSDocTemplateTag {
1520
1516
return n .data .(* JSDocTemplateTag )
1521
1517
}
1522
1518
1523
- func (n * Node ) AsJSDocPropertyTag () * JSDocPropertyTag {
1524
- return n .data .(* JSDocPropertyTag )
1525
- }
1526
-
1527
- func (n * Node ) AsJSDocParameterTag () * JSDocParameterTag {
1528
- return n .data .(* JSDocParameterTag )
1519
+ func (n * Node ) AsJSDocParameterOrPropertyTag () * JSDocParameterOrPropertyTag {
1520
+ return n .data .(* JSDocParameterOrPropertyTag )
1529
1521
}
1530
1522
1531
1523
func (n * Node ) AsJSDocReturnTag () * JSDocReturnTag {
@@ -1846,7 +1838,7 @@ func IsDeclarationNode(node *Node) bool {
1846
1838
return node .DeclarationData () != nil
1847
1839
}
1848
1840
1849
- // DeclarationBase
1841
+ // ExportableBase
1850
1842
1851
1843
type ExportableBase struct {
1852
1844
LocalSymbol * Symbol // Local symbol declared by node (initialized by binding only for exported nodes)
@@ -5529,6 +5521,10 @@ func (node *RegularExpressionLiteral) Clone(f NodeFactoryCoercible) *Node {
5529
5521
return cloneNode (f .AsNodeFactory ().NewRegularExpressionLiteral (node .Text ), node .AsNode (), f .AsNodeFactory ().hooks )
5530
5522
}
5531
5523
5524
+ func IsRegularExpressionLiteral (node * Node ) bool {
5525
+ return node .Kind == KindRegularExpressionLiteral
5526
+ }
5527
+
5532
5528
// NoSubstitutionTemplateLiteral
5533
5529
5534
5530
type NoSubstitutionTemplateLiteral struct {
@@ -9194,112 +9190,70 @@ func (node *JSDocTemplateTag) Clone(f NodeFactoryCoercible) *Node {
9194
9190
return cloneNode (f .AsNodeFactory ().NewJSDocTemplateTag (node .TagName , node .Constraint , node .TypeParameters , node .Comment ), node .AsNode (), f .AsNodeFactory ().hooks )
9195
9191
}
9196
9192
9197
- // JSDocPropertyTag
9198
- type JSDocPropertyTag struct {
9193
+ // JSDocParameterOrPropertyTag
9194
+ type JSDocParameterOrPropertyTag struct {
9199
9195
JSDocTagBase
9200
9196
name * EntityName
9201
9197
IsBracketed bool
9202
9198
TypeExpression * TypeNode
9203
9199
IsNameFirst bool
9204
9200
}
9205
9201
9206
- func (f * NodeFactory ) NewJSDocPropertyTag (tagName * IdentifierNode , name * EntityName , isBracketed bool , typeExpression * TypeNode , isNameFirst bool , comment * NodeList ) * Node {
9207
- data := & JSDocPropertyTag {}
9202
+ type (
9203
+ JSDocParameterTag = JSDocParameterOrPropertyTag
9204
+ JSDocPropertyTag = JSDocParameterOrPropertyTag
9205
+ )
9206
+
9207
+ func (f * NodeFactory ) newJSDocParameterOrPropertyTag (kind Kind , tagName * IdentifierNode , name * EntityName , isBracketed bool , typeExpression * TypeNode , isNameFirst bool , comment * NodeList ) * Node {
9208
+ data := & JSDocParameterOrPropertyTag {}
9208
9209
data .TagName = tagName
9209
9210
data .name = name
9210
9211
data .IsBracketed = isBracketed
9211
9212
data .TypeExpression = typeExpression
9212
9213
data .IsNameFirst = isNameFirst
9213
9214
data .Comment = comment
9214
- return f .newNode (KindJSDocPropertyTag , data )
9215
- }
9216
-
9217
- func (f * NodeFactory ) UpdateJSDocPropertyTag (node * JSDocPropertyTag , tagName * IdentifierNode , name * EntityName , isBracketed bool , typeExpression * TypeNode , isNameFirst bool , comment * NodeList ) * Node {
9218
- if tagName != node .TagName || name != node .name || isBracketed != node .IsBracketed || typeExpression != node .TypeExpression || isNameFirst != node .IsNameFirst || comment != node .Comment {
9219
- return updateNode (f .NewJSDocPropertyTag (tagName , name , isBracketed , typeExpression , isNameFirst , comment ), node .AsNode (), f .hooks )
9220
- }
9221
- return node .AsNode ()
9222
- }
9223
-
9224
- func (node * JSDocPropertyTag ) ForEachChild (v Visitor ) bool {
9225
- if node .IsNameFirst {
9226
- return visit (v , node .TagName ) || visit (v , node .name ) || visit (v , node .TypeExpression ) || visitNodeList (v , node .Comment )
9227
- } else {
9228
- return visit (v , node .TagName ) || visit (v , node .TypeExpression ) || visit (v , node .name ) || visitNodeList (v , node .Comment )
9229
- }
9230
- }
9231
-
9232
- func (node * JSDocPropertyTag ) VisitEachChild (v * NodeVisitor ) * Node {
9233
- tagName := v .visitNode (node .TagName )
9234
- var name , typeExpression * Node
9235
- if node .IsNameFirst {
9236
- name , typeExpression = v .visitNode (node .name ), v .visitNode (node .TypeExpression )
9237
- } else {
9238
- typeExpression , name = v .visitNode (node .TypeExpression ), v .visitNode (node .name )
9239
- }
9240
- return v .Factory .UpdateJSDocPropertyTag (node , tagName , name , node .IsBracketed , typeExpression , node .IsNameFirst , v .visitNodes (node .Comment ))
9241
- }
9242
-
9243
- func (node * JSDocPropertyTag ) Clone (f NodeFactoryCoercible ) * Node {
9244
- return cloneNode (f .AsNodeFactory ().NewJSDocPropertyTag (node .TagName , node .Name (), node .IsBracketed , node .TypeExpression , node .IsNameFirst , node .Comment ), node .AsNode (), f .AsNodeFactory ().hooks )
9215
+ return f .newNode (kind , data )
9245
9216
}
9246
9217
9247
- func (node * JSDocPropertyTag ) Name () * EntityName { return node .name }
9248
-
9249
- // JSDocParameterTag
9250
- type JSDocParameterTag struct {
9251
- JSDocTagBase
9252
- name * EntityName
9253
- IsBracketed bool
9254
- TypeExpression * TypeNode
9255
- IsNameFirst bool
9218
+ func (f * NodeFactory ) NewJSDocParameterTag (tagName * IdentifierNode , name * EntityName , isBracketed bool , typeExpression * TypeNode , isNameFirst bool , comment * NodeList ) * Node {
9219
+ return f .newJSDocParameterOrPropertyTag (KindJSDocParameterTag , tagName , name , isBracketed , typeExpression , isNameFirst , comment )
9256
9220
}
9257
9221
9258
- func (f * NodeFactory ) NewJSDocParameterTag (tagName * IdentifierNode , name * EntityName , isBracketed bool , typeExpression * TypeNode , isNameFirst bool , comment * NodeList ) * Node {
9259
- data := & JSDocParameterTag {}
9260
- data .TagName = tagName
9261
- data .name = name
9262
- data .IsBracketed = isBracketed
9263
- data .TypeExpression = typeExpression
9264
- data .IsNameFirst = isNameFirst
9265
- data .Comment = comment
9266
- return f .newNode (KindJSDocParameterTag , data )
9222
+ func (f * NodeFactory ) NewJSDocPropertyTag (tagName * IdentifierNode , name * EntityName , isBracketed bool , typeExpression * TypeNode , isNameFirst bool , comment * NodeList ) * Node {
9223
+ return f .newJSDocParameterOrPropertyTag (KindJSDocPropertyTag , tagName , name , isBracketed , typeExpression , isNameFirst , comment )
9267
9224
}
9268
9225
9269
- func (f * NodeFactory ) UpdateJSDocParameterTag ( node * JSDocParameterTag , tagName * IdentifierNode , name * EntityName , isBracketed bool , typeExpression * TypeNode , isNameFirst bool , comment * NodeList ) * Node {
9226
+ func (f * NodeFactory ) UpdateJSDocParameterOrPropertyTag ( kind Kind , node * JSDocParameterOrPropertyTag , tagName * IdentifierNode , name * EntityName , isBracketed bool , typeExpression * TypeNode , isNameFirst bool , comment * NodeList ) * Node {
9270
9227
if tagName != node .TagName || name != node .name || isBracketed != node .IsBracketed || typeExpression != node .TypeExpression || isNameFirst != node .IsNameFirst || comment != node .Comment {
9271
- return updateNode (f .NewJSDocParameterTag ( tagName , name , isBracketed , typeExpression , isNameFirst , comment ), node .AsNode (), f .hooks )
9228
+ return updateNode (f .newJSDocParameterOrPropertyTag ( kind , tagName , name , isBracketed , typeExpression , isNameFirst , comment ), node .AsNode (), f .hooks )
9272
9229
}
9273
9230
return node .AsNode ()
9274
9231
}
9275
9232
9276
- func (node * JSDocParameterTag ) ForEachChild (v Visitor ) bool {
9277
- if visit (v , node .TagName ) {
9278
- return true
9279
- }
9233
+ func (node * JSDocParameterOrPropertyTag ) ForEachChild (v Visitor ) bool {
9280
9234
if node .IsNameFirst {
9281
- return visit (v , node .name ) || visit (v , node .TypeExpression ) || visitNodeList (v , node .Comment )
9235
+ return visit (v , node .TagName ) || visit ( v , node . name ) || visit (v , node .TypeExpression ) || visitNodeList (v , node .Comment )
9282
9236
} else {
9283
- return visit (v , node .TypeExpression ) || visit (v , node .name ) || visitNodeList (v , node .Comment )
9237
+ return visit (v , node .TagName ) || visit ( v , node . TypeExpression ) || visit (v , node .name ) || visitNodeList (v , node .Comment )
9284
9238
}
9285
9239
}
9286
9240
9287
- func (node * JSDocParameterTag ) VisitEachChild (v * NodeVisitor ) * Node {
9241
+ func (node * JSDocParameterOrPropertyTag ) VisitEachChild (v * NodeVisitor ) * Node {
9288
9242
tagName := v .visitNode (node .TagName )
9289
9243
var name , typeExpression * Node
9290
9244
if node .IsNameFirst {
9291
9245
name , typeExpression = v .visitNode (node .name ), v .visitNode (node .TypeExpression )
9292
9246
} else {
9293
9247
typeExpression , name = v .visitNode (node .TypeExpression ), v .visitNode (node .name )
9294
9248
}
9295
- return v .Factory .UpdateJSDocParameterTag ( node , tagName , name , node .IsBracketed , typeExpression , node .IsNameFirst , v .visitNodes (node .Comment ))
9249
+ return v .Factory .UpdateJSDocParameterOrPropertyTag ( node . Kind , node , tagName , name , node .IsBracketed , typeExpression , node .IsNameFirst , v .visitNodes (node .Comment ))
9296
9250
}
9297
9251
9298
- func (node * JSDocParameterTag ) Clone (f NodeFactoryCoercible ) * Node {
9299
- return cloneNode (f .AsNodeFactory ().NewJSDocParameterTag ( node .TagName , node .Name (), node .IsBracketed , node .TypeExpression , node .IsNameFirst , node .Comment ), node .AsNode (), f .AsNodeFactory ().hooks )
9252
+ func (node * JSDocParameterOrPropertyTag ) Clone (f NodeFactoryCoercible ) * Node {
9253
+ return cloneNode (f .AsNodeFactory ().newJSDocParameterOrPropertyTag ( node . Kind , node .TagName , node .Name (), node .IsBracketed , node .TypeExpression , node .IsNameFirst , node .Comment ), node .AsNode (), f .AsNodeFactory ().hooks )
9300
9254
}
9301
9255
9302
- func (node * JSDocParameterTag ) Name () * EntityName { return node .name }
9256
+ func (node * JSDocParameterOrPropertyTag ) Name () * EntityName { return node .name }
9303
9257
9304
9258
// JSDocReturnTag
9305
9259
type JSDocReturnTag struct {
0 commit comments