@@ -308,11 +308,11 @@ func (c *Checker) checkGrammarModifiers(node *ast.Node /*Union[HasModifiers, Has
308
308
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_already_seen , "override" )
309
309
} else if flags & ast .ModifierFlagsAmbient != 0 {
310
310
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_be_used_with_1_modifier , "override" , "declare" )
311
- } else if flags & ast .ModifierFlagsReadonly != 0 {
311
+ } else if flags & ast .ModifierFlagsReadonly != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
312
312
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "override" , "readonly" )
313
- } else if flags & ast .ModifierFlagsAccessor != 0 {
313
+ } else if flags & ast .ModifierFlagsAccessor != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
314
314
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "override" , "accessor" )
315
- } else if flags & ast .ModifierFlagsAsync != 0 {
315
+ } else if flags & ast .ModifierFlagsAsync != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
316
316
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "override" , "async" )
317
317
}
318
318
flags |= ast .ModifierFlagsOverride
@@ -325,22 +325,22 @@ func (c *Checker) checkGrammarModifiers(node *ast.Node /*Union[HasModifiers, Has
325
325
326
326
if flags & ast .ModifierFlagsAccessibilityModifier != 0 {
327
327
return c .grammarErrorOnNode (modifier , diagnostics .Accessibility_modifier_already_seen )
328
- } else if flags & ast .ModifierFlagsOverride != 0 {
328
+ } else if flags & ast .ModifierFlagsOverride != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
329
329
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , text , "override" )
330
- } else if flags & ast .ModifierFlagsStatic != 0 {
330
+ } else if flags & ast .ModifierFlagsStatic != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
331
331
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , text , "static" )
332
- } else if flags & ast .ModifierFlagsAccessor != 0 {
332
+ } else if flags & ast .ModifierFlagsAccessor != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
333
333
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , text , "accessor" )
334
- } else if flags & ast .ModifierFlagsReadonly != 0 {
334
+ } else if flags & ast .ModifierFlagsReadonly != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
335
335
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , text , "readonly" )
336
- } else if flags & ast .ModifierFlagsAsync != 0 {
336
+ } else if flags & ast .ModifierFlagsAsync != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
337
337
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , text , "async" )
338
338
} else if node .Parent .Kind == ast .KindModuleBlock || node .Parent .Kind == ast .KindSourceFile {
339
339
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_appear_on_a_module_or_namespace_element , text )
340
340
} else if flags & ast .ModifierFlagsAbstract != 0 {
341
341
if modifier .Kind == ast .KindPrivateKeyword {
342
342
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_be_used_with_1_modifier , text , "abstract" )
343
- } else {
343
+ } else if modifier . Flags & ast . NodeFlagsReparsed == 0 {
344
344
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , text , "abstract" )
345
345
}
346
346
} else if ast .IsPrivateIdentifierClassElementDeclaration (node ) {
@@ -350,19 +350,19 @@ func (c *Checker) checkGrammarModifiers(node *ast.Node /*Union[HasModifiers, Has
350
350
case ast .KindStaticKeyword :
351
351
if flags & ast .ModifierFlagsStatic != 0 {
352
352
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_already_seen , "static" )
353
- } else if flags & ast .ModifierFlagsReadonly != 0 {
353
+ } else if flags & ast .ModifierFlagsReadonly != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
354
354
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "static" , "readonly" )
355
- } else if flags & ast .ModifierFlagsAsync != 0 {
355
+ } else if flags & ast .ModifierFlagsAsync != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
356
356
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "static" , "async" )
357
- } else if flags & ast .ModifierFlagsAccessor != 0 {
357
+ } else if flags & ast .ModifierFlagsAccessor != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
358
358
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "static" , "accessor" )
359
359
} else if node .Parent .Kind == ast .KindModuleBlock || node .Parent .Kind == ast .KindSourceFile {
360
360
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_appear_on_a_module_or_namespace_element , "static" )
361
361
} else if node .Kind == ast .KindParameter {
362
362
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_appear_on_a_parameter , "static" )
363
363
} else if flags & ast .ModifierFlagsAbstract != 0 {
364
364
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_be_used_with_1_modifier , "static" , "abstract" )
365
- } else if flags & ast .ModifierFlagsOverride != 0 {
365
+ } else if flags & ast .ModifierFlagsOverride != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
366
366
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "static" , "override" )
367
367
}
368
368
flags |= ast .ModifierFlagsStatic
@@ -395,11 +395,11 @@ func (c *Checker) checkGrammarModifiers(node *ast.Node /*Union[HasModifiers, Has
395
395
}
396
396
if flags & ast .ModifierFlagsExport != 0 {
397
397
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_already_seen , "export" )
398
- } else if flags & ast .ModifierFlagsAmbient != 0 {
398
+ } else if flags & ast .ModifierFlagsAmbient != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
399
399
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "export" , "declare" )
400
- } else if flags & ast .ModifierFlagsAbstract != 0 {
400
+ } else if flags & ast .ModifierFlagsAbstract != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
401
401
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "export" , "abstract" )
402
- } else if flags & ast .ModifierFlagsAsync != 0 {
402
+ } else if flags & ast .ModifierFlagsAsync != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
403
403
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "export" , "async" )
404
404
} else if ast .IsClassLike (node .Parent ) && ! ast .IsJSTypeAliasDeclaration (node ) {
405
405
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_appear_on_class_elements_of_this_kind , "export" )
@@ -424,7 +424,7 @@ func (c *Checker) checkGrammarModifiers(node *ast.Node /*Union[HasModifiers, Has
424
424
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_appear_on_a_using_declaration , "default" )
425
425
} else if blockScopeKind == ast .NodeFlagsAwaitUsing {
426
426
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_cannot_appear_on_an_await_using_declaration , "default" )
427
- } else if flags & ast .ModifierFlagsExport == 0 {
427
+ } else if flags & ast .ModifierFlagsExport == 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
428
428
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "export" , "default" )
429
429
} else if sawExportBeforeDecorators {
430
430
return c .grammarErrorOnNode (firstDecorator , diagnostics .Decorators_are_not_valid_here )
@@ -481,10 +481,10 @@ func (c *Checker) checkGrammarModifiers(node *ast.Node /*Union[HasModifiers, Has
481
481
if flags & ast .ModifierFlagsAsync != 0 && lastAsync != nil {
482
482
return c .grammarErrorOnNode (lastAsync , diagnostics .X_0_modifier_cannot_be_used_with_1_modifier , "async" , "abstract" )
483
483
}
484
- if flags & ast .ModifierFlagsOverride != 0 {
484
+ if flags & ast .ModifierFlagsOverride != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
485
485
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "abstract" , "override" )
486
486
}
487
- if flags & ast .ModifierFlagsAccessor != 0 {
487
+ if flags & ast .ModifierFlagsAccessor != 0 && modifier . Flags & ast . NodeFlagsReparsed == 0 {
488
488
return c .grammarErrorOnNode (modifier , diagnostics .X_0_modifier_must_precede_1_modifier , "abstract" , "accessor" )
489
489
}
490
490
}
0 commit comments