@@ -998,6 +998,8 @@ namespace ts {
998998 case SyntaxKind . BigIntKeyword :
999999 case SyntaxKind . NeverKeyword :
10001000 case SyntaxKind . ObjectKeyword :
1001+ case SyntaxKind . InKeyword :
1002+ case SyntaxKind . OutKeyword :
10011003 case SyntaxKind . OverrideKeyword :
10021004 case SyntaxKind . StringKeyword :
10031005 case SyntaxKind . BooleanKeyword :
@@ -1077,6 +1079,8 @@ namespace ts {
10771079 if ( flags & ModifierFlags . Override ) result . push ( createModifier ( SyntaxKind . OverrideKeyword ) ) ;
10781080 if ( flags & ModifierFlags . Readonly ) result . push ( createModifier ( SyntaxKind . ReadonlyKeyword ) ) ;
10791081 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 ) ) ;
10801084 return result . length ? result : undefined ;
10811085 }
10821086
@@ -1126,11 +1130,27 @@ namespace ts {
11261130 //
11271131
11281132 // @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+ }
11301150 const node = createBaseNamedDeclaration < TypeParameterDeclaration > (
11311151 SyntaxKind . TypeParameter ,
11321152 /*decorators*/ undefined ,
1133- /* modifiers*/ undefined ,
1153+ modifiers ,
11341154 name
11351155 ) ;
11361156 node . constraint = constraint ;
@@ -1140,11 +1160,28 @@ namespace ts {
11401160 }
11411161
11421162 // @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
11451182 || node . constraint !== constraint
11461183 || node . default !== defaultType
1147- ? update ( createTypeParameterDeclaration ( name , constraint , defaultType ) , node )
1184+ ? update ( createTypeParameterDeclaration ( modifiers , name , constraint , defaultType ) , node )
11481185 : node ;
11491186 }
11501187
0 commit comments