JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsClassDeclaration { decorators: JsDecoratorList [], abstract_token: missing (optional), class_token: CLASS_KW@0..6 "class" [] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@6..11 "Base" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), implements_clause: missing (optional), l_curly_token: L_CURLY@11..13 "{" [] [Whitespace(" ")], members: JsClassMemberList [ JsPropertyClassMember { modifiers: JsPropertyModifierList [], name: JsLiteralMemberName { value: IDENT@13..18 "base1" [] [], }, property_annotation: missing (optional), value: missing (optional), semicolon_token: SEMICOLON@18..20 ";" [] [Whitespace(" ")], }, JsPropertyClassMember { modifiers: JsPropertyModifierList [], name: JsLiteralMemberName { value: IDENT@20..25 "base2" [] [], }, property_annotation: missing (optional), value: missing (optional), semicolon_token: SEMICOLON@25..27 ";" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@27..28 "}" [] [], }, JsClassDeclaration { decorators: JsDecoratorList [], abstract_token: ABSTRACT_KW@28..38 "abstract" [Newline("\n")] [Whitespace(" ")], class_token: CLASS_KW@38..44 "class" [] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@44..49 "Test" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: JsExtendsClause { extends_token: EXTENDS_KW@49..57 "extends" [] [Whitespace(" ")], super_class: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@57..62 "Base" [] [Whitespace(" ")], }, }, type_arguments: missing (optional), }, implements_clause: missing (optional), l_curly_token: L_CURLY@62..63 "{" [] [], members: JsClassMemberList [ JsBogusMember { items: [ JsPropertyModifierList [ TsOverrideModifier { modifier_token: OVERRIDE_KW@63..77 "override" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsOverrideModifier { modifier_token: OVERRIDE_KW@77..86 "override" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@86..91 "base1" [] [], }, SEMICOLON@91..92 ";" [] [], ], }, JsBogusMember { items: [ TsPropertySignatureModifierList [ TsDeclareModifier { modifier_token: DECLARE_KW@92..105 "declare" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsDeclareModifier { modifier_token: DECLARE_KW@105..113 "declare" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@113..114 "a" [] [], }, SEMICOLON@114..115 ";" [] [], ], }, JsBogusMember { items: [ JsPropertyModifierList [ TsAccessibilityModifier { modifier_token: PRIVATE_KW@115..128 "private" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsAccessibilityModifier { modifier_token: PROTECTED_KW@128..138 "protected" [] [Whitespace(" ")], }, TsAccessibilityModifier { modifier_token: PUBLIC_KW@138..145 "public" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@145..146 "c" [] [], }, SEMICOLON@146..147 ";" [] [], ], }, JsBogusMember { items: [ JsPropertyModifierList [ TsAccessibilityModifier { modifier_token: PRIVATE_KW@147..160 "private" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsAccessibilityModifier { modifier_token: PRIVATE_KW@160..168 "private" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@168..169 "d" [] [], }, SEMICOLON@169..170 ";" [] [], ], }, JsBogusMember { items: [ JsPropertyModifierList [ TsAccessibilityModifier { modifier_token: PROTECTED_KW@170..185 "protected" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsAccessibilityModifier { modifier_token: PROTECTED_KW@185..195 "protected" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@195..196 "e" [] [], }, SEMICOLON@196..197 ";" [] [], ], }, JsBogusMember { items: [ JsPropertyModifierList [ TsAccessibilityModifier { modifier_token: PUBLIC_KW@197..209 "public" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsAccessibilityModifier { modifier_token: PUBLIC_KW@209..216 "public" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@216..217 "f" [] [], }, SEMICOLON@217..218 ";" [] [], ], }, JsBogusMember { items: [ TsPropertySignatureModifierList [ TsAbstractModifier { modifier_token: ABSTRACT_KW@218..232 "abstract" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsAbstractModifier { modifier_token: ABSTRACT_KW@232..241 "abstract" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@241..242 "g" [] [], }, SEMICOLON@242..243 ";" [] [], ], }, JsBogusMember { items: [ JsPropertyModifierList [ JsStaticModifier { modifier_token: STATIC_KW@243..255 "static" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, JsStaticModifier { modifier_token: STATIC_KW@255..262 "static" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@262..263 "h" [] [], }, SEMICOLON@263..264 ";" [] [], ], }, JsBogusMember { items: [ JsPropertyModifierList [ TsReadonlyModifier { modifier_token: READONLY_KW@264..278 "readonly" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsReadonlyModifier { modifier_token: READONLY_KW@278..287 "readonly" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@287..288 "i" [] [], }, SEMICOLON@288..289 ";" [] [], ], }, JsBogusMember { items: [ TsPropertySignatureModifierList [ TsOverrideModifier { modifier_token: OVERRIDE_KW@289..303 "override" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsDeclareModifier { modifier_token: DECLARE_KW@303..311 "declare" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@311..316 "base2" [] [], }, SEMICOLON@316..317 ";" [] [], ], }, JsBogusMember { items: [ TsPropertySignatureModifierList [ TsAccessibilityModifier { modifier_token: PRIVATE_KW@317..330 "private" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, TsAbstractModifier { modifier_token: ABSTRACT_KW@330..339 "abstract" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@339..340 "j" [] [], }, SEMICOLON@340..341 ";" [] [], ], }, JsBogusMember { items: [ TsPropertySignatureModifierList [ TsAbstractModifier { modifier_token: ABSTRACT_KW@341..355 "abstract" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, ], JsPrivateClassMemberName { hash_token: HASH@355..356 "#" [] [], id_token: IDENT@356..357 "j" [] [], }, SEMICOLON@357..358 ";" [] [], ], }, JsBogusMember { items: [ TsPropertySignatureModifierList [ TsAbstractModifier { modifier_token: ABSTRACT_KW@358..372 "abstract" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, JsStaticModifier { modifier_token: STATIC_KW@372..379 "static" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@379..380 "k" [] [], }, SEMICOLON@380..381 ";" [] [], ], }, JsBogusMember { items: [ TsAbstractModifier { modifier_token: ABSTRACT_KW@381..395 "abstract" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, ASYNC_KW@395..401 "async" [] [Whitespace(" ")], JsLiteralMemberName { value: IDENT@401..402 "l" [] [], }, JsParameters { l_paren_token: L_PAREN@402..403 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@403..404 ")" [] [], }, SEMICOLON@404..405 ";" [] [], ], }, JsBogusMember { items: [ JsBogus { items: [ TsDeclareModifier { modifier_token: DECLARE_KW@405..418 "declare" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, ], }, ASYNC_KW@418..424 "async" [] [Whitespace(" ")], JsLiteralMemberName { value: IDENT@424..425 "m" [] [], }, JsParameters { l_paren_token: L_PAREN@425..426 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@426..427 ")" [] [], }, SEMICOLON@427..428 ";" [] [], ], }, JsBogusMember { items: [ TsPropertySignatureModifierList [ TsDeclareModifier { modifier_token: DECLARE_KW@428..441 "declare" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, ], JsPrivateClassMemberName { hash_token: HASH@441..442 "#" [] [], id_token: IDENT@442..443 "l" [] [], }, SEMICOLON@443..444 ";" [] [], ], }, JsBogusMember { items: [ TsPropertySignatureModifierList [ TsDeclareModifier { modifier_token: DECLARE_KW@444..457 "declare" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, JsAccessorModifier { modifier_token: ACCESSOR_KW@457..466 "accessor" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@466..467 "p" [] [], }, SEMICOLON@467..468 ";" [] [], ], }, JsBogusMember { items: [ JsPropertyModifierList [ JsAccessorModifier { modifier_token: ACCESSOR_KW@468..482 "accessor" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], }, JsAccessorModifier { modifier_token: ACCESSOR_KW@482..491 "accessor" [] [Whitespace(" ")], }, ], JsLiteralMemberName { value: IDENT@491..492 "r" [] [], }, SEMICOLON@492..493 ";" [] [], ], }, ], r_curly_token: R_CURLY@493..495 "}" [Newline("\n")] [], }, ], eof_token: EOF@495..496 "" [Newline("\n")] [], } 0: JS_MODULE@0..496 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..495 0: JS_CLASS_DECLARATION@0..28 0: JS_DECORATOR_LIST@0..0 1: (empty) 2: CLASS_KW@0..6 "class" [] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@6..11 0: IDENT@6..11 "Base" [] [Whitespace(" ")] 4: (empty) 5: (empty) 6: (empty) 7: L_CURLY@11..13 "{" [] [Whitespace(" ")] 8: JS_CLASS_MEMBER_LIST@13..27 0: JS_PROPERTY_CLASS_MEMBER@13..20 0: JS_PROPERTY_MODIFIER_LIST@13..13 1: JS_LITERAL_MEMBER_NAME@13..18 0: IDENT@13..18 "base1" [] [] 2: (empty) 3: (empty) 4: SEMICOLON@18..20 ";" [] [Whitespace(" ")] 1: JS_PROPERTY_CLASS_MEMBER@20..27 0: JS_PROPERTY_MODIFIER_LIST@20..20 1: JS_LITERAL_MEMBER_NAME@20..25 0: IDENT@20..25 "base2" [] [] 2: (empty) 3: (empty) 4: SEMICOLON@25..27 ";" [] [Whitespace(" ")] 9: R_CURLY@27..28 "}" [] [] 1: JS_CLASS_DECLARATION@28..495 0: JS_DECORATOR_LIST@28..28 1: ABSTRACT_KW@28..38 "abstract" [Newline("\n")] [Whitespace(" ")] 2: CLASS_KW@38..44 "class" [] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@44..49 0: IDENT@44..49 "Test" [] [Whitespace(" ")] 4: (empty) 5: JS_EXTENDS_CLAUSE@49..62 0: EXTENDS_KW@49..57 "extends" [] [Whitespace(" ")] 1: JS_IDENTIFIER_EXPRESSION@57..62 0: JS_REFERENCE_IDENTIFIER@57..62 0: IDENT@57..62 "Base" [] [Whitespace(" ")] 2: (empty) 6: (empty) 7: L_CURLY@62..63 "{" [] [] 8: JS_CLASS_MEMBER_LIST@63..493 0: JS_BOGUS_MEMBER@63..92 0: JS_PROPERTY_MODIFIER_LIST@63..86 0: TS_OVERRIDE_MODIFIER@63..77 0: OVERRIDE_KW@63..77 "override" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_OVERRIDE_MODIFIER@77..86 0: OVERRIDE_KW@77..86 "override" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@86..91 0: IDENT@86..91 "base1" [] [] 2: SEMICOLON@91..92 ";" [] [] 1: JS_BOGUS_MEMBER@92..115 0: TS_PROPERTY_SIGNATURE_MODIFIER_LIST@92..113 0: TS_DECLARE_MODIFIER@92..105 0: DECLARE_KW@92..105 "declare" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_DECLARE_MODIFIER@105..113 0: DECLARE_KW@105..113 "declare" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@113..114 0: IDENT@113..114 "a" [] [] 2: SEMICOLON@114..115 ";" [] [] 2: JS_BOGUS_MEMBER@115..147 0: JS_PROPERTY_MODIFIER_LIST@115..145 0: TS_ACCESSIBILITY_MODIFIER@115..128 0: PRIVATE_KW@115..128 "private" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_ACCESSIBILITY_MODIFIER@128..138 0: PROTECTED_KW@128..138 "protected" [] [Whitespace(" ")] 2: TS_ACCESSIBILITY_MODIFIER@138..145 0: PUBLIC_KW@138..145 "public" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@145..146 0: IDENT@145..146 "c" [] [] 2: SEMICOLON@146..147 ";" [] [] 3: JS_BOGUS_MEMBER@147..170 0: JS_PROPERTY_MODIFIER_LIST@147..168 0: TS_ACCESSIBILITY_MODIFIER@147..160 0: PRIVATE_KW@147..160 "private" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_ACCESSIBILITY_MODIFIER@160..168 0: PRIVATE_KW@160..168 "private" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@168..169 0: IDENT@168..169 "d" [] [] 2: SEMICOLON@169..170 ";" [] [] 4: JS_BOGUS_MEMBER@170..197 0: JS_PROPERTY_MODIFIER_LIST@170..195 0: TS_ACCESSIBILITY_MODIFIER@170..185 0: PROTECTED_KW@170..185 "protected" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_ACCESSIBILITY_MODIFIER@185..195 0: PROTECTED_KW@185..195 "protected" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@195..196 0: IDENT@195..196 "e" [] [] 2: SEMICOLON@196..197 ";" [] [] 5: JS_BOGUS_MEMBER@197..218 0: JS_PROPERTY_MODIFIER_LIST@197..216 0: TS_ACCESSIBILITY_MODIFIER@197..209 0: PUBLIC_KW@197..209 "public" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_ACCESSIBILITY_MODIFIER@209..216 0: PUBLIC_KW@209..216 "public" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@216..217 0: IDENT@216..217 "f" [] [] 2: SEMICOLON@217..218 ";" [] [] 6: JS_BOGUS_MEMBER@218..243 0: TS_PROPERTY_SIGNATURE_MODIFIER_LIST@218..241 0: TS_ABSTRACT_MODIFIER@218..232 0: ABSTRACT_KW@218..232 "abstract" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_ABSTRACT_MODIFIER@232..241 0: ABSTRACT_KW@232..241 "abstract" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@241..242 0: IDENT@241..242 "g" [] [] 2: SEMICOLON@242..243 ";" [] [] 7: JS_BOGUS_MEMBER@243..264 0: JS_PROPERTY_MODIFIER_LIST@243..262 0: JS_STATIC_MODIFIER@243..255 0: STATIC_KW@243..255 "static" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_STATIC_MODIFIER@255..262 0: STATIC_KW@255..262 "static" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@262..263 0: IDENT@262..263 "h" [] [] 2: SEMICOLON@263..264 ";" [] [] 8: JS_BOGUS_MEMBER@264..289 0: JS_PROPERTY_MODIFIER_LIST@264..287 0: TS_READONLY_MODIFIER@264..278 0: READONLY_KW@264..278 "readonly" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_READONLY_MODIFIER@278..287 0: READONLY_KW@278..287 "readonly" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@287..288 0: IDENT@287..288 "i" [] [] 2: SEMICOLON@288..289 ";" [] [] 9: JS_BOGUS_MEMBER@289..317 0: TS_PROPERTY_SIGNATURE_MODIFIER_LIST@289..311 0: TS_OVERRIDE_MODIFIER@289..303 0: OVERRIDE_KW@289..303 "override" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_DECLARE_MODIFIER@303..311 0: DECLARE_KW@303..311 "declare" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@311..316 0: IDENT@311..316 "base2" [] [] 2: SEMICOLON@316..317 ";" [] [] 10: JS_BOGUS_MEMBER@317..341 0: TS_PROPERTY_SIGNATURE_MODIFIER_LIST@317..339 0: TS_ACCESSIBILITY_MODIFIER@317..330 0: PRIVATE_KW@317..330 "private" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: TS_ABSTRACT_MODIFIER@330..339 0: ABSTRACT_KW@330..339 "abstract" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@339..340 0: IDENT@339..340 "j" [] [] 2: SEMICOLON@340..341 ";" [] [] 11: JS_BOGUS_MEMBER@341..358 0: TS_PROPERTY_SIGNATURE_MODIFIER_LIST@341..355 0: TS_ABSTRACT_MODIFIER@341..355 0: ABSTRACT_KW@341..355 "abstract" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_PRIVATE_CLASS_MEMBER_NAME@355..357 0: HASH@355..356 "#" [] [] 1: IDENT@356..357 "j" [] [] 2: SEMICOLON@357..358 ";" [] [] 12: JS_BOGUS_MEMBER@358..381 0: TS_PROPERTY_SIGNATURE_MODIFIER_LIST@358..379 0: TS_ABSTRACT_MODIFIER@358..372 0: ABSTRACT_KW@358..372 "abstract" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_STATIC_MODIFIER@372..379 0: STATIC_KW@372..379 "static" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@379..380 0: IDENT@379..380 "k" [] [] 2: SEMICOLON@380..381 ";" [] [] 13: JS_BOGUS_MEMBER@381..405 0: TS_ABSTRACT_MODIFIER@381..395 0: ABSTRACT_KW@381..395 "abstract" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: ASYNC_KW@395..401 "async" [] [Whitespace(" ")] 2: JS_LITERAL_MEMBER_NAME@401..402 0: IDENT@401..402 "l" [] [] 3: JS_PARAMETERS@402..404 0: L_PAREN@402..403 "(" [] [] 1: JS_PARAMETER_LIST@403..403 2: R_PAREN@403..404 ")" [] [] 4: SEMICOLON@404..405 ";" [] [] 14: JS_BOGUS_MEMBER@405..428 0: JS_BOGUS@405..418 0: TS_DECLARE_MODIFIER@405..418 0: DECLARE_KW@405..418 "declare" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: ASYNC_KW@418..424 "async" [] [Whitespace(" ")] 2: JS_LITERAL_MEMBER_NAME@424..425 0: IDENT@424..425 "m" [] [] 3: JS_PARAMETERS@425..427 0: L_PAREN@425..426 "(" [] [] 1: JS_PARAMETER_LIST@426..426 2: R_PAREN@426..427 ")" [] [] 4: SEMICOLON@427..428 ";" [] [] 15: JS_BOGUS_MEMBER@428..444 0: TS_PROPERTY_SIGNATURE_MODIFIER_LIST@428..441 0: TS_DECLARE_MODIFIER@428..441 0: DECLARE_KW@428..441 "declare" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_PRIVATE_CLASS_MEMBER_NAME@441..443 0: HASH@441..442 "#" [] [] 1: IDENT@442..443 "l" [] [] 2: SEMICOLON@443..444 ";" [] [] 16: JS_BOGUS_MEMBER@444..468 0: TS_PROPERTY_SIGNATURE_MODIFIER_LIST@444..466 0: TS_DECLARE_MODIFIER@444..457 0: DECLARE_KW@444..457 "declare" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_ACCESSOR_MODIFIER@457..466 0: ACCESSOR_KW@457..466 "accessor" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@466..467 0: IDENT@466..467 "p" [] [] 2: SEMICOLON@467..468 ";" [] [] 17: JS_BOGUS_MEMBER@468..493 0: JS_PROPERTY_MODIFIER_LIST@468..491 0: JS_ACCESSOR_MODIFIER@468..482 0: ACCESSOR_KW@468..482 "accessor" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_ACCESSOR_MODIFIER@482..491 0: ACCESSOR_KW@482..491 "accessor" [] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@491..492 0: IDENT@491..492 "r" [] [] 2: SEMICOLON@492..493 ";" [] [] 9: R_CURLY@493..495 "}" [Newline("\n")] [] 4: EOF@495..496 "" [Newline("\n")] [] -- ts_class_invalid_modifier_combinations.ts:3:14 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'override' already seen 1 │ class Base { base1; base2; } 2 │ abstract class Test extends Base { > 3 │ override override base1; │ ^^^^^^^^ 4 │ declare declare a; 5 │ private protected public c; i duplicate modifier 1 │ class Base { base1; base2; } 2 │ abstract class Test extends Base { > 3 │ override override base1; │ ^^^^^^^^ 4 │ declare declare a; 5 │ private protected public c; i first seen here 1 │ class Base { base1; base2; } 2 │ abstract class Test extends Base { > 3 │ override override base1; │ ^^^^^^^^ 4 │ declare declare a; 5 │ private protected public c; -- ts_class_invalid_modifier_combinations.ts:4:13 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'declare' already seen 2 │ abstract class Test extends Base { 3 │ override override base1; > 4 │ declare declare a; │ ^^^^^^^ 5 │ private protected public c; 6 │ private private d; i duplicate modifier 2 │ abstract class Test extends Base { 3 │ override override base1; > 4 │ declare declare a; │ ^^^^^^^ 5 │ private protected public c; 6 │ private private d; i first seen here 2 │ abstract class Test extends Base { 3 │ override override base1; > 4 │ declare declare a; │ ^^^^^^^ 5 │ private protected public c; 6 │ private private d; -- ts_class_invalid_modifier_combinations.ts:5:13 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Accessibility modifier already seen. 3 │ override override base1; 4 │ declare declare a; > 5 │ private protected public c; │ ^^^^^^^^^ 6 │ private private d; 7 │ protected protected e; i duplicate modifier 3 │ override override base1; 4 │ declare declare a; > 5 │ private protected public c; │ ^^^^^^^^^ 6 │ private private d; 7 │ protected protected e; i first modifier 3 │ override override base1; 4 │ declare declare a; > 5 │ private protected public c; │ ^^^^^^^ 6 │ private private d; 7 │ protected protected e; -- ts_class_invalid_modifier_combinations.ts:5:23 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Accessibility modifier already seen. 3 │ override override base1; 4 │ declare declare a; > 5 │ private protected public c; │ ^^^^^^ 6 │ private private d; 7 │ protected protected e; i duplicate modifier 3 │ override override base1; 4 │ declare declare a; > 5 │ private protected public c; │ ^^^^^^ 6 │ private private d; 7 │ protected protected e; i first modifier 3 │ override override base1; 4 │ declare declare a; > 5 │ private protected public c; │ ^^^^^^^ 6 │ private private d; 7 │ protected protected e; -- ts_class_invalid_modifier_combinations.ts:6:13 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Accessibility modifier already seen. 4 │ declare declare a; 5 │ private protected public c; > 6 │ private private d; │ ^^^^^^^ 7 │ protected protected e; 8 │ public public f; i duplicate modifier 4 │ declare declare a; 5 │ private protected public c; > 6 │ private private d; │ ^^^^^^^ 7 │ protected protected e; 8 │ public public f; i first modifier 4 │ declare declare a; 5 │ private protected public c; > 6 │ private private d; │ ^^^^^^^ 7 │ protected protected e; 8 │ public public f; -- ts_class_invalid_modifier_combinations.ts:7:15 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Accessibility modifier already seen. 5 │ private protected public c; 6 │ private private d; > 7 │ protected protected e; │ ^^^^^^^^^ 8 │ public public f; 9 │ abstract abstract g; i duplicate modifier 5 │ private protected public c; 6 │ private private d; > 7 │ protected protected e; │ ^^^^^^^^^ 8 │ public public f; 9 │ abstract abstract g; i first modifier 5 │ private protected public c; 6 │ private private d; > 7 │ protected protected e; │ ^^^^^^^^^ 8 │ public public f; 9 │ abstract abstract g; -- ts_class_invalid_modifier_combinations.ts:8:12 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Accessibility modifier already seen. 6 │ private private d; 7 │ protected protected e; > 8 │ public public f; │ ^^^^^^ 9 │ abstract abstract g; 10 │ static static h; i duplicate modifier 6 │ private private d; 7 │ protected protected e; > 8 │ public public f; │ ^^^^^^ 9 │ abstract abstract g; 10 │ static static h; i first modifier 6 │ private private d; 7 │ protected protected e; > 8 │ public public f; │ ^^^^^^ 9 │ abstract abstract g; 10 │ static static h; -- ts_class_invalid_modifier_combinations.ts:9:14 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'abstract' already seen 7 │ protected protected e; 8 │ public public f; > 9 │ abstract abstract g; │ ^^^^^^^^ 10 │ static static h; 11 │ readonly readonly i; i duplicate modifier 7 │ protected protected e; 8 │ public public f; > 9 │ abstract abstract g; │ ^^^^^^^^ 10 │ static static h; 11 │ readonly readonly i; i first seen here 7 │ protected protected e; 8 │ public public f; > 9 │ abstract abstract g; │ ^^^^^^^^ 10 │ static static h; 11 │ readonly readonly i; -- ts_class_invalid_modifier_combinations.ts:10:12 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'static' already seen 8 │ public public f; 9 │ abstract abstract g; > 10 │ static static h; │ ^^^^^^ 11 │ readonly readonly i; 12 │ override declare base2; i duplicate modifier 8 │ public public f; 9 │ abstract abstract g; > 10 │ static static h; │ ^^^^^^ 11 │ readonly readonly i; 12 │ override declare base2; i first seen here 8 │ public public f; 9 │ abstract abstract g; > 10 │ static static h; │ ^^^^^^ 11 │ readonly readonly i; 12 │ override declare base2; -- ts_class_invalid_modifier_combinations.ts:11:14 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'readonly' already seen 9 │ abstract abstract g; 10 │ static static h; > 11 │ readonly readonly i; │ ^^^^^^^^ 12 │ override declare base2; 13 │ private abstract j; i duplicate modifier 9 │ abstract abstract g; 10 │ static static h; > 11 │ readonly readonly i; │ ^^^^^^^^ 12 │ override declare base2; 13 │ private abstract j; i first seen here 9 │ abstract abstract g; 10 │ static static h; > 11 │ readonly readonly i; │ ^^^^^^^^ 12 │ override declare base2; 13 │ private abstract j; -- ts_class_invalid_modifier_combinations.ts:12:14 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'declare' cannot be used with 'override' modifier. 10 │ static static h; 11 │ readonly readonly i; > 12 │ override declare base2; │ ^^^^^^^ 13 │ private abstract j; 14 │ abstract #j; i 'declare' modifier 10 │ static static h; 11 │ readonly readonly i; > 12 │ override declare base2; │ ^^^^^^^ 13 │ private abstract j; 14 │ abstract #j; i 'override' modifier 10 │ static static h; 11 │ readonly readonly i; > 12 │ override declare base2; │ ^^^^^^^^ 13 │ private abstract j; 14 │ abstract #j; -- ts_class_invalid_modifier_combinations.ts:13:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'private' cannot be used with 'abstract' modifier. 11 │ readonly readonly i; 12 │ override declare base2; > 13 │ private abstract j; │ ^^^^^^^ 14 │ abstract #j; 15 │ abstract static k; i 'private' modifier 11 │ readonly readonly i; 12 │ override declare base2; > 13 │ private abstract j; │ ^^^^^^^ 14 │ abstract #j; 15 │ abstract static k; i 'abstract' modifier 11 │ readonly readonly i; 12 │ override declare base2; > 13 │ private abstract j; │ ^^^^^^^^ 14 │ abstract #j; 15 │ abstract static k; -- ts_class_invalid_modifier_combinations.ts:14:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'abstract' modifier cannot be used with a private identifier'. 12 │ override declare base2; 13 │ private abstract j; > 14 │ abstract #j; │ ^^^^^^^^ 15 │ abstract static k; 16 │ abstract async l(); -- ts_class_invalid_modifier_combinations.ts:15:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'abstract' cannot be used with 'static' modifier. 13 │ private abstract j; 14 │ abstract #j; > 15 │ abstract static k; │ ^^^^^^^^ 16 │ abstract async l(); 17 │ declare async m(); i 'abstract' modifier 13 │ private abstract j; 14 │ abstract #j; > 15 │ abstract static k; │ ^^^^^^^^ 16 │ abstract async l(); 17 │ declare async m(); i 'static' modifier 13 │ private abstract j; 14 │ abstract #j; > 15 │ abstract static k; │ ^^^^^^ 16 │ abstract async l(); 17 │ declare async m(); -- ts_class_invalid_modifier_combinations.ts:16:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × async members cannot be abstract 14 │ abstract #j; 15 │ abstract static k; > 16 │ abstract async l(); │ ^^^^^^^^ 17 │ declare async m(); 18 │ declare #l; -- ts_class_invalid_modifier_combinations.ts:17:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'declare' modifier is only allowed on properties. 15 │ abstract static k; 16 │ abstract async l(); > 17 │ declare async m(); │ ^^^^^^^ 18 │ declare #l; 19 │ declare accessor p; -- ts_class_invalid_modifier_combinations.ts:18:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'declare' modifier cannot be used with a private identifier'. 16 │ abstract async l(); 17 │ declare async m(); > 18 │ declare #l; │ ^^^^^^^ 19 │ declare accessor p; 20 │ accessor accessor r; -- ts_class_invalid_modifier_combinations.ts:19:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'declare' cannot be used with 'accessor' modifier. 17 │ declare async m(); 18 │ declare #l; > 19 │ declare accessor p; │ ^^^^^^^ 20 │ accessor accessor r; 21 │ } i 'declare' modifier 17 │ declare async m(); 18 │ declare #l; > 19 │ declare accessor p; │ ^^^^^^^ 20 │ accessor accessor r; 21 │ } i 'accessor' modifier 17 │ declare async m(); 18 │ declare #l; > 19 │ declare accessor p; │ ^^^^^^^^ 20 │ accessor accessor r; 21 │ } -- ts_class_invalid_modifier_combinations.ts:20:14 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × 'accessor' already seen 18 │ declare #l; 19 │ declare accessor p; > 20 │ accessor accessor r; │ ^^^^^^^^ 21 │ } 22 │ i duplicate modifier 18 │ declare #l; 19 │ declare accessor p; > 20 │ accessor accessor r; │ ^^^^^^^^ 21 │ } 22 │ i first seen here 18 │ declare #l; 19 │ declare accessor p; > 20 │ accessor accessor r; │ ^^^^^^^^ 21 │ } 22 │ -- class Base { base1; base2; } abstract class Test extends Base { override override base1; declare declare a; private protected public c; private private d; protected protected e; public public f; abstract abstract g; static static h; readonly readonly i; override declare base2; private abstract j; abstract #j; abstract static k; abstract async l(); declare async m(); declare #l; declare accessor p; accessor accessor r; }