From a18637b2b14c9dd6edb6cf3a70784cab6432a2f4 Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Mon, 16 Aug 2021 01:41:51 +0900 Subject: [PATCH 1/6] Delete static modifier from static blocks node --- packages/babel-parser/src/plugins/typescript/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/babel-parser/src/plugins/typescript/index.js b/packages/babel-parser/src/plugins/typescript/index.js index a23ef19ebe53..bdea1d5494d0 100644 --- a/packages/babel-parser/src/plugins/typescript/index.js +++ b/packages/babel-parser/src/plugins/typescript/index.js @@ -2396,6 +2396,7 @@ export default (superClass: Class): Class => const callParseClassMemberWithIsStatic = () => { const isStatic = !!member.static; if (isStatic && this.eat(tt.braceL)) { + delete member.static; if (this.tsHasSomeModifiers(member, invalidModifersForStaticBlocks)) { this.raise(this.state.pos, TSErrors.StaticBlockCannotHaveModifier); } From cb5bff3047f22e7a18b14a2cae6c542bfc6e41d9 Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Mon, 16 Aug 2021 01:42:03 +0900 Subject: [PATCH 2/6] Update tests --- .../invalid-static-block-with-accessibility-private/output.json | 1 - .../output.json | 1 - .../invalid-static-block-with-accessibility-public/output.json | 1 - .../invalid-static-block-with-modifier-abstract/output.json | 1 - .../invalid-static-block-with-modifier-override/output.json | 1 - .../invalid-static-block-with-modifier-static/output.json | 1 - .../invalid-static-blocks-with-modifer-declare/output.json | 1 - .../invalid-static-blocks-with-modifier-readonly/output.json | 1 - .../static-blocks-and-proptery-named-static/output.json | 1 - .../static-blocks-and-static-property-named-static/output.json | 1 - .../static-blocks/static-blocks-and-static-property/output.json | 1 - .../fixtures/typescript/static-blocks/static-blocks/output.json | 1 - 12 files changed, 12 deletions(-) diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json index 65faa07fd21f..b1a8b7172e70 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json @@ -27,7 +27,6 @@ { "type": "StaticBlock", "start":14,"end":31,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":19}}, - "static": true, "accessibility": "private", "body": [] } diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json index b0cfcdb02234..6aea0dc4810e 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json @@ -27,7 +27,6 @@ { "type": "StaticBlock", "start":14,"end":33,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":21}}, - "static": true, "accessibility": "protected", "body": [] } diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json index 178d8a4e5dbd..ae67726e9f6e 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json @@ -27,7 +27,6 @@ { "type": "StaticBlock", "start":14,"end":30,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":18}}, - "static": true, "accessibility": "public", "body": [] } diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json index 66fd7a1b2bc0..ca083b287a0c 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json @@ -28,7 +28,6 @@ "type": "StaticBlock", "start":14,"end":32,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":20}}, "abstract": true, - "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json index cd9e56ada864..47e05c3a4782 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json @@ -28,7 +28,6 @@ "type": "StaticBlock", "start":14,"end":32,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":20}}, "override": true, - "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json index e5dcf1757e61..1822b6c26bfd 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json @@ -26,7 +26,6 @@ { "type": "StaticBlock", "start":14,"end":30,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":18}}, - "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare/output.json index 0f311fbf182d..b17d4a941c20 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare/output.json @@ -27,7 +27,6 @@ "type": "StaticBlock", "start":14,"end":31,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":19}}, "declare": true, - "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json index 86a169878b33..9c34f62a17c2 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json @@ -28,7 +28,6 @@ "type": "StaticBlock", "start":14,"end":32,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":20}}, "readonly": true, - "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-proptery-named-static/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-proptery-named-static/output.json index 1fd1dd823729..6e95aa0afec0 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-proptery-named-static/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-proptery-named-static/output.json @@ -35,7 +35,6 @@ { "type": "StaticBlock", "start":24,"end":33,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":11}}, - "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-static-property-named-static/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-static-property-named-static/output.json index ffe88cead774..e4f907bf1b28 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-static-property-named-static/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-static-property-named-static/output.json @@ -35,7 +35,6 @@ { "type": "StaticBlock", "start":31,"end":40,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":11}}, - "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-static-property/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-static-property/output.json index 754121e53f01..a24ce1884c1e 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-static-property/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks-and-static-property/output.json @@ -35,7 +35,6 @@ { "type": "StaticBlock", "start":28,"end":37,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":11}}, - "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks/output.json index 05c10a18a8c4..38cec40a5346 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/static-blocks/output.json @@ -23,7 +23,6 @@ { "type": "StaticBlock", "start":14,"end":23,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":11}}, - "static": true, "body": [] } ] From 801aa8e5e58ebd6939100565fbdbfc550b5d2958 Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Thu, 19 Aug 2021 07:30:10 +0900 Subject: [PATCH 3/6] Address review --- .../src/plugins/typescript/index.js | 42 ++++++++++++++----- .../input.ts | 2 +- .../output.json | 1 - .../input.ts | 2 +- .../output.json | 1 - .../input.ts | 2 +- .../output.json | 1 - .../output.json | 1 - .../output.json | 1 - .../output.json | 4 +- .../output.json | 1 - 11 files changed, 36 insertions(+), 22 deletions(-) diff --git a/packages/babel-parser/src/plugins/typescript/index.js b/packages/babel-parser/src/plugins/typescript/index.js index bdea1d5494d0..59832ef58508 100644 --- a/packages/babel-parser/src/plugins/typescript/index.js +++ b/packages/babel-parser/src/plugins/typescript/index.js @@ -230,17 +230,22 @@ export default (superClass: Class): Class => } /** Parses a modifier matching one the given modifier names. */ - tsParseModifier(allowedModifiers: T[]): ?T { + tsParseModifier( + allowedModifiers: T[], + stopOnStartOfClassStaticBlock?: boolean, + ): ?T { if (!this.match(tt.name)) { return undefined; } const modifier = this.state.value; - if ( - allowedModifiers.indexOf(modifier) !== -1 && - this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)) - ) { - return modifier; + if (allowedModifiers.indexOf(modifier) !== -1) { + if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { + return undefined; + } + if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { + return modifier; + } } return undefined; } @@ -258,6 +263,7 @@ export default (superClass: Class): Class => allowedModifiers: TsModifier[], disallowedModifiers?: TsModifier[], errorTemplate?: ErrorTemplate, + stopOnStartOfClassStaticBlock?: boolean, ): void { const enforceOrder = (pos, modifier, before, after) => { if (modifier === before && modified[after]) { @@ -277,6 +283,7 @@ export default (superClass: Class): Class => const startPos = this.state.start; const modifier: ?TsModifier = this.tsParseModifier( allowedModifiers.concat(disallowedModifiers ?? []), + stopOnStartOfClassStaticBlock, ); if (!modifier) break; @@ -2374,6 +2381,13 @@ export default (superClass: Class): Class => }); } + tsIsStartOfStaticBlocks() { + return ( + this.isContextual("static") && + this.lookaheadCharCode() === charCodes.leftCurlyBrace + ); + } + parseClassMember( classBody: N.ClassBody, member: any, @@ -2391,18 +2405,26 @@ export default (superClass: Class): Class => this.tsParseModifiers( member, invalidModifersForStaticBlocks.concat(["static"]), + /* disallowedModifiers */ undefined, + /* errorTemplate */ undefined, + /* stopOnStartOfClassStaticBlock */ true, ); const callParseClassMemberWithIsStatic = () => { - const isStatic = !!member.static; - if (isStatic && this.eat(tt.braceL)) { - delete member.static; + if (this.tsIsStartOfStaticBlocks()) { + this.next(); // eat "static" + this.next(); // eat "{" if (this.tsHasSomeModifiers(member, invalidModifersForStaticBlocks)) { this.raise(this.state.pos, TSErrors.StaticBlockCannotHaveModifier); } this.parseClassStaticBlock(classBody, ((member: any): N.StaticBlock)); } else { - this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + this.parseClassMemberWithIsStatic( + classBody, + member, + state, + !!member.static, + ); } }; if (member.declare) { diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/input.ts index 78f1f565915c..88520e66f248 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/input.ts +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/input.ts @@ -1,3 +1,3 @@ class Foo { - static private {} + private static {} } diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json index b1a8b7172e70..f73aaa908193 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":33,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, "errors": [ - "SyntaxError: 'private' modifier must precede 'static' modifier. (2:9)", "SyntaxError: Static class blocks cannot have any modifier. (2:19)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/input.ts index 2cacf18a7760..3def96830816 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/input.ts +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/input.ts @@ -1,3 +1,3 @@ class Foo { - static protected {} + protected static {} } diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json index 6aea0dc4810e..06de34f306e9 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":35,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, "errors": [ - "SyntaxError: 'protected' modifier must precede 'static' modifier. (2:9)", "SyntaxError: Static class blocks cannot have any modifier. (2:21)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/input.ts index 4b547e4fbc52..8562b2bb3cb6 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/input.ts +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/input.ts @@ -1,3 +1,3 @@ class Foo { - static public {} + public static {} } diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json index ae67726e9f6e..f7b350b97c6c 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":32,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, "errors": [ - "SyntaxError: 'public' modifier must precede 'static' modifier. (2:9)", "SyntaxError: Static class blocks cannot have any modifier. (2:18)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json index ca083b287a0c..057eae5cfc8a 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, "errors": [ - "SyntaxError: 'static' modifier cannot be used with 'abstract' modifier. (2:11)", "SyntaxError: Static class blocks cannot have any modifier. (2:20)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json index 47e05c3a4782..9c248a70609d 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, "errors": [ - "SyntaxError: 'static' modifier must precede 'override' modifier. (2:11)", "SyntaxError: Static class blocks cannot have any modifier. (2:20)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json index 1822b6c26bfd..4f99e791d345 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json @@ -1,9 +1,6 @@ { "type": "File", "start":0,"end":32,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, - "errors": [ - "SyntaxError: Duplicate modifier: 'static'. (2:9)" - ], "program": { "type": "Program", "start":0,"end":32,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, @@ -26,6 +23,7 @@ { "type": "StaticBlock", "start":14,"end":30,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":18}}, + "static": true, "body": [] } ] diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json index 9c34f62a17c2..106872766fd1 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, "errors": [ - "SyntaxError: 'static' modifier must precede 'readonly' modifier. (2:11)", "SyntaxError: Static class blocks cannot have any modifier. (2:20)" ], "program": { From 7fc070d573c042b1cf5ba5588c5c6264f32771eb Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Sat, 21 Aug 2021 09:07:27 +0900 Subject: [PATCH 4/6] Address review --- packages/babel-parser/src/plugins/typescript/index.js | 7 ++++--- .../invalid-static-block-with-modifier-static/output.json | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/babel-parser/src/plugins/typescript/index.js b/packages/babel-parser/src/plugins/typescript/index.js index 59832ef58508..5fde51cb9b0a 100644 --- a/packages/babel-parser/src/plugins/typescript/index.js +++ b/packages/babel-parser/src/plugins/typescript/index.js @@ -2393,7 +2393,7 @@ export default (superClass: Class): Class => member: any, state: N.ParseClassMemberState, ): void { - const invalidModifersForStaticBlocks = [ + const modifiers = [ "declare", "private", "public", @@ -2401,10 +2401,11 @@ export default (superClass: Class): Class => "override", "abstract", "readonly", + "static", ]; this.tsParseModifiers( member, - invalidModifersForStaticBlocks.concat(["static"]), + modifiers, /* disallowedModifiers */ undefined, /* errorTemplate */ undefined, /* stopOnStartOfClassStaticBlock */ true, @@ -2414,7 +2415,7 @@ export default (superClass: Class): Class => if (this.tsIsStartOfStaticBlocks()) { this.next(); // eat "static" this.next(); // eat "{" - if (this.tsHasSomeModifiers(member, invalidModifersForStaticBlocks)) { + if (this.tsHasSomeModifiers(member, modifiers)) { this.raise(this.state.pos, TSErrors.StaticBlockCannotHaveModifier); } this.parseClassStaticBlock(classBody, ((member: any): N.StaticBlock)); diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json index 4f99e791d345..4feac9427aa1 100644 --- a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-static/output.json @@ -1,6 +1,9 @@ { "type": "File", "start":0,"end":32,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, + "errors": [ + "SyntaxError: Static class blocks cannot have any modifier. (2:18)" + ], "program": { "type": "Program", "start":0,"end":32,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, From 5ea75b951df589a15df8b5e79625fc5418bd40f9 Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Wed, 25 Aug 2021 15:08:44 +0900 Subject: [PATCH 5/6] Add tests from review --- .../input.ts | 0 .../output.json | 0 .../input.ts | 3 +++ .../options.json | 12 ++++++++++++ .../input.ts | 0 .../output.json | 0 .../input.ts | 3 +++ .../options.json | 12 ++++++++++++ .../input.ts | 0 .../output.json | 0 .../input.ts | 3 +++ .../options.json | 12 ++++++++++++ 12 files changed, 45 insertions(+) rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-accessibility-private => invalid-static-block-with-accessibility-private-01}/input.ts (100%) rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-accessibility-private => invalid-static-block-with-accessibility-private-01}/output.json (100%) create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-02/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-02/options.json rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-accessibility-protected => invalid-static-block-with-accessibility-protected-01}/input.ts (100%) rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-accessibility-protected => invalid-static-block-with-accessibility-protected-01}/output.json (100%) create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-02/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-02/options.json rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-accessibility-public => invalid-static-block-with-accessibility-public-01}/input.ts (100%) rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-accessibility-public => invalid-static-block-with-accessibility-public-01}/output.json (100%) create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-02/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-02/options.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-01/input.ts similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/input.ts rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-01/input.ts diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-01/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private/output.json rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-01/output.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-02/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-02/input.ts new file mode 100644 index 000000000000..78f1f565915c --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-02/input.ts @@ -0,0 +1,3 @@ +class Foo { + static private {} +} diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-02/options.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-02/options.json new file mode 100644 index 000000000000..4418a0a19024 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-private-02/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + [ + "classStaticBlock" + ], + [ + "typescript" + ] + ], + "sourceType": "module", + "throws": "Unexpected token (2:17)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-01/input.ts similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/input.ts rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-01/input.ts diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-01/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected/output.json rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-01/output.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-02/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-02/input.ts new file mode 100644 index 000000000000..2cacf18a7760 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-02/input.ts @@ -0,0 +1,3 @@ +class Foo { + static protected {} +} diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-02/options.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-02/options.json new file mode 100644 index 000000000000..8720025572f6 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-protected-02/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + [ + "classStaticBlock" + ], + [ + "typescript" + ] + ], + "sourceType": "module", + "throws": "Unexpected token (2:19)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-01/input.ts similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/input.ts rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-01/input.ts diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-01/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public/output.json rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-01/output.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-02/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-02/input.ts new file mode 100644 index 000000000000..4b547e4fbc52 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-02/input.ts @@ -0,0 +1,3 @@ +class Foo { + static public {} +} diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-02/options.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-02/options.json new file mode 100644 index 000000000000..1795a8b35913 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-accessibility-public-02/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + [ + "classStaticBlock" + ], + [ + "typescript" + ] + ], + "sourceType": "module", + "throws": "Unexpected token (2:16)" +} \ No newline at end of file From 828b241077b0be54d1389dcd813a866b0df6b5d8 Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Wed, 25 Aug 2021 15:16:05 +0900 Subject: [PATCH 6/6] Add tests --- .../input.ts | 0 .../output.json | 0 .../input.ts | 3 ++ .../options.json | 12 ++++++ .../input.ts | 0 .../input.ts | 3 ++ .../output.json | 38 +++++++++++++++++++ .../output.json | 0 .../input.ts | 3 ++ .../options.json | 12 ++++++ .../input.ts | 0 .../output.json | 0 .../input.ts | 3 ++ .../options.json | 12 ++++++ .../input.ts | 0 .../output.json | 0 .../input.ts | 3 ++ .../options.json | 12 ++++++ 18 files changed, 101 insertions(+) rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-modifier-abstract => invalid-static-block-with-modifier-abstract-01}/input.ts (100%) rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-modifier-abstract => invalid-static-block-with-modifier-abstract-01}/output.json (100%) create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-02/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-02/options.json rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-modifier-override => invalid-static-block-with-modifier-override-01}/input.ts (100%) create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/invalid-static-block-with-modifier-abstract/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/invalid-static-block-with-modifier-abstract/output.json rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-block-with-modifier-override => invalid-static-block-with-modifier-override-01}/output.json (100%) create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-02/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-02/options.json rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-blocks-with-modifer-declare => invalid-static-blocks-with-modifer-declare-01}/input.ts (100%) rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-blocks-with-modifer-declare => invalid-static-blocks-with-modifer-declare-01}/output.json (100%) create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-02/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-02/options.json rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-blocks-with-modifier-readonly => invalid-static-blocks-with-modifier-readonly-01}/input.ts (100%) rename packages/babel-parser/test/fixtures/typescript/static-blocks/{invalid-static-blocks-with-modifier-readonly => invalid-static-blocks-with-modifier-readonly-01}/output.json (100%) create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-02/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-02/options.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-01/input.ts similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/input.ts rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-01/input.ts diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-01/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract/output.json rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-01/output.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-02/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-02/input.ts new file mode 100644 index 000000000000..3e83b29e0a5c --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-02/input.ts @@ -0,0 +1,3 @@ +class Foo { + static abstract {} +} diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-02/options.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-02/options.json new file mode 100644 index 000000000000..954158d98be2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-abstract-02/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + [ + "classStaticBlock" + ], + [ + "typescript" + ] + ], + "sourceType": "module", + "throws": "Unexpected token (2:18)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/input.ts similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/input.ts rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/input.ts diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/invalid-static-block-with-modifier-abstract/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/invalid-static-block-with-modifier-abstract/input.ts new file mode 100644 index 000000000000..59517ad9d281 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/invalid-static-block-with-modifier-abstract/input.ts @@ -0,0 +1,3 @@ +class Foo { + abstract static {} +} diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/invalid-static-block-with-modifier-abstract/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/invalid-static-block-with-modifier-abstract/output.json new file mode 100644 index 000000000000..057eae5cfc8a --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/invalid-static-block-with-modifier-abstract/output.json @@ -0,0 +1,38 @@ +{ + "type": "File", + "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, + "errors": [ + "SyntaxError: Static class blocks cannot have any modifier. (2:20)" + ], + "program": { + "type": "Program", + "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start":0,"end":34,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, + "id": { + "type": "Identifier", + "start":6,"end":9,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":9},"identifierName":"Foo"}, + "name": "Foo" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start":10,"end":34,"loc":{"start":{"line":1,"column":10},"end":{"line":3,"column":1}}, + "body": [ + { + "type": "StaticBlock", + "start":14,"end":32,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":20}}, + "abstract": true, + "body": [] + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override/output.json rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-01/output.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-02/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-02/input.ts new file mode 100644 index 000000000000..e564308d38b0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-02/input.ts @@ -0,0 +1,3 @@ +class Foo { + static override {} +} diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-02/options.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-02/options.json new file mode 100644 index 000000000000..954158d98be2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-block-with-modifier-override-02/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + [ + "classStaticBlock" + ], + [ + "typescript" + ] + ], + "sourceType": "module", + "throws": "Unexpected token (2:18)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-01/input.ts similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare/input.ts rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-01/input.ts diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-01/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare/output.json rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-01/output.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-02/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-02/input.ts new file mode 100644 index 000000000000..ca5c27a2a810 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-02/input.ts @@ -0,0 +1,3 @@ +class Foo { + static declare {} +} diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-02/options.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-02/options.json new file mode 100644 index 000000000000..4418a0a19024 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifer-declare-02/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + [ + "classStaticBlock" + ], + [ + "typescript" + ] + ], + "sourceType": "module", + "throws": "Unexpected token (2:17)" +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-01/input.ts similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/input.ts rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-01/input.ts diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-01/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly/output.json rename to packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-01/output.json diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-02/input.ts b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-02/input.ts new file mode 100644 index 000000000000..01d337693dd3 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-02/input.ts @@ -0,0 +1,3 @@ +class Foo { + static readonly {} +} diff --git a/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-02/options.json b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-02/options.json new file mode 100644 index 000000000000..954158d98be2 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/static-blocks/invalid-static-blocks-with-modifier-readonly-02/options.json @@ -0,0 +1,12 @@ +{ + "plugins": [ + [ + "classStaticBlock" + ], + [ + "typescript" + ] + ], + "sourceType": "module", + "throws": "Unexpected token (2:18)" +} \ No newline at end of file