@@ -1817,7 +1817,6 @@ namespace ts {
1817
1817
case SyntaxKind . DefaultKeyword :
1818
1818
return nextTokenCanFollowDefaultKeyword ( ) ;
1819
1819
case SyntaxKind . StaticKeyword :
1820
- return nextTokenIsOnSameLineAndCanFollowModifier ( ) ;
1821
1820
case SyntaxKind . GetKeyword :
1822
1821
case SyntaxKind . SetKeyword :
1823
1822
nextToken ( ) ;
@@ -6701,7 +6700,7 @@ namespace ts {
6701
6700
return list && createNodeArray ( list , pos ) ;
6702
6701
}
6703
6702
6704
- function tryParseModifier ( permitInvalidConstAsModifier ?: boolean , stopOnStartOfClassStaticBlock ?: boolean ) : Modifier | undefined {
6703
+ function tryParseModifier ( permitInvalidConstAsModifier ?: boolean , stopOnStartOfClassStaticBlock ?: boolean , hasSeenStaticModifier ?: boolean ) : Modifier | undefined {
6705
6704
const pos = getNodePos ( ) ;
6706
6705
const kind = token ( ) ;
6707
6706
@@ -6715,6 +6714,9 @@ namespace ts {
6715
6714
else if ( stopOnStartOfClassStaticBlock && token ( ) === SyntaxKind . StaticKeyword && lookAhead ( nextTokenIsOpenBrace ) ) {
6716
6715
return undefined ;
6717
6716
}
6717
+ else if ( hasSeenStaticModifier && token ( ) === SyntaxKind . StaticKeyword ) {
6718
+ return undefined ;
6719
+ }
6718
6720
else {
6719
6721
if ( ! parseAnyContextualModifier ( ) ) {
6720
6722
return undefined ;
@@ -6733,8 +6735,9 @@ namespace ts {
6733
6735
*/
6734
6736
function parseModifiers ( permitInvalidConstAsModifier ?: boolean , stopOnStartOfClassStaticBlock ?: boolean ) : NodeArray < Modifier > | undefined {
6735
6737
const pos = getNodePos ( ) ;
6736
- let list , modifier ;
6737
- while ( modifier = tryParseModifier ( permitInvalidConstAsModifier , stopOnStartOfClassStaticBlock ) ) {
6738
+ let list , modifier , hasSeenStatic = false ;
6739
+ while ( modifier = tryParseModifier ( permitInvalidConstAsModifier , stopOnStartOfClassStaticBlock , hasSeenStatic ) ) {
6740
+ if ( modifier . kind === SyntaxKind . StaticKeyword ) hasSeenStatic = true ;
6738
6741
list = append ( list , modifier ) ;
6739
6742
}
6740
6743
return list && createNodeArray ( list , pos ) ;
0 commit comments