@@ -998,6 +998,8 @@ namespace ts {
998
998
case SyntaxKind . BigIntKeyword :
999
999
case SyntaxKind . NeverKeyword :
1000
1000
case SyntaxKind . ObjectKeyword :
1001
+ case SyntaxKind . InKeyword :
1002
+ case SyntaxKind . OutKeyword :
1001
1003
case SyntaxKind . OverrideKeyword :
1002
1004
case SyntaxKind . StringKeyword :
1003
1005
case SyntaxKind . BooleanKeyword :
@@ -1077,6 +1079,8 @@ namespace ts {
1077
1079
if ( flags & ModifierFlags . Override ) result . push ( createModifier ( SyntaxKind . OverrideKeyword ) ) ;
1078
1080
if ( flags & ModifierFlags . Readonly ) result . push ( createModifier ( SyntaxKind . ReadonlyKeyword ) ) ;
1079
1081
if ( flags & ModifierFlags . Async ) result . push ( createModifier ( SyntaxKind . AsyncKeyword ) ) ;
1082
+ if ( flags & ModifierFlags . In ) result . push ( createModifier ( SyntaxKind . InKeyword ) ) ;
1083
+ if ( flags & ModifierFlags . Out ) result . push ( createModifier ( SyntaxKind . OutKeyword ) ) ;
1080
1084
return result . length ? result : undefined ;
1081
1085
}
1082
1086
@@ -1126,11 +1130,27 @@ namespace ts {
1126
1130
//
1127
1131
1128
1132
// @api
1129
- function createTypeParameterDeclaration ( name : string | Identifier , constraint ?: TypeNode , defaultType ?: TypeNode ) {
1133
+ function createTypeParameterDeclaration ( modifiers : readonly Modifier [ ] | undefined , name : string | Identifier , constraint ?: TypeNode , defaultType ?: TypeNode ) : TypeParameterDeclaration ;
1134
+ /** @deprecated */
1135
+ function createTypeParameterDeclaration ( name : string | Identifier , constraint ?: TypeNode , defaultType ?: TypeNode ) : TypeParameterDeclaration ;
1136
+ function createTypeParameterDeclaration ( modifiersOrName : readonly Modifier [ ] | string | Identifier | undefined , nameOrConstraint ?: string | Identifier | TypeNode , constraintOrDefault ?: TypeNode , defaultType ?: TypeNode ) {
1137
+ let name ;
1138
+ let modifiers ;
1139
+ let constraint ;
1140
+ if ( modifiersOrName === undefined || isArray ( modifiersOrName ) ) {
1141
+ modifiers = modifiersOrName ;
1142
+ name = nameOrConstraint as string | Identifier ;
1143
+ constraint = constraintOrDefault ;
1144
+ }
1145
+ else {
1146
+ modifiers = undefined ;
1147
+ name = modifiersOrName ;
1148
+ constraint = nameOrConstraint as TypeNode | undefined ;
1149
+ }
1130
1150
const node = createBaseNamedDeclaration < TypeParameterDeclaration > (
1131
1151
SyntaxKind . TypeParameter ,
1132
1152
/*decorators*/ undefined ,
1133
- /* modifiers*/ undefined ,
1153
+ modifiers ,
1134
1154
name
1135
1155
) ;
1136
1156
node . constraint = constraint ;
@@ -1140,11 +1160,28 @@ namespace ts {
1140
1160
}
1141
1161
1142
1162
// @api
1143
- function updateTypeParameterDeclaration ( node : TypeParameterDeclaration , name : Identifier , constraint : TypeNode | undefined , defaultType : TypeNode | undefined ) {
1144
- return node . name !== name
1163
+ function updateTypeParameterDeclaration ( node : TypeParameterDeclaration , modifiers : readonly Modifier [ ] | undefined , name : Identifier , constraint : TypeNode | undefined , defaultType : TypeNode | undefined ) : TypeParameterDeclaration ;
1164
+ /** @deprecated */
1165
+ function updateTypeParameterDeclaration ( node : TypeParameterDeclaration , name : Identifier , constraint : TypeNode | undefined , defaultType : TypeNode | undefined ) : TypeParameterDeclaration ;
1166
+ function updateTypeParameterDeclaration ( node : TypeParameterDeclaration , modifiersOrName : readonly Modifier [ ] | Identifier | undefined , nameOrConstraint : Identifier | TypeNode | undefined , constraintOrDefault : TypeNode | undefined , defaultType ?: TypeNode | undefined ) {
1167
+ let name ;
1168
+ let modifiers ;
1169
+ let constraint ;
1170
+ if ( modifiersOrName === undefined || isArray ( modifiersOrName ) ) {
1171
+ modifiers = modifiersOrName ;
1172
+ name = nameOrConstraint as Identifier ;
1173
+ constraint = constraintOrDefault ;
1174
+ }
1175
+ else {
1176
+ modifiers = undefined ;
1177
+ name = modifiersOrName ;
1178
+ constraint = nameOrConstraint as TypeNode | undefined ;
1179
+ }
1180
+ return node . modifiers !== modifiers
1181
+ || node . name !== name
1145
1182
|| node . constraint !== constraint
1146
1183
|| node . default !== defaultType
1147
- ? update ( createTypeParameterDeclaration ( name , constraint , defaultType ) , node )
1184
+ ? update ( createTypeParameterDeclaration ( modifiers , name , constraint , defaultType ) , node )
1148
1185
: node ;
1149
1186
}
1150
1187
0 commit comments