-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Readonly arrays and readonly tuples #437
Comments
Thanks for flagging! Looks like Babel updated everything on its end ( babel/babel#9502 ) so it should just be a matter of porting over all recent Babel parser changes. (No Sucrase transform changes should be needed since it all falls under the existing "remove all type tokens" rule.) |
alangpierce
added a commit
that referenced
this issue
Mar 31, 2019
Progress toward #437 Notes about each change: 4e1d6e7ff v7.1.6 🚫 Release only. a2afb974b Fix parsing typescript function types with destructuring (#9035) 🚫 Already fixed with #278. 445b14148 Better error for disallowed trailing commas/parameters after rest elements (#9046) 🚫 Just error reporting. e7f0c065c Bump some deps (#9056) 🚫 Nothing to do. 4f16a12c0 Fix bug with parsing TS generic async arrow function (#9055) 🚫 Sucrase seems unaffected by bug. d2971a195 Fix compatibility between typescript and jsx plugins in interface declarations (#9058) 🚫 Sucrase seems unaffected by bug. 856edbf95 [flow] Allow type casts in array patterns inside arrow parameters (#9069) 🚫 Bug caused by error reporting, doesn't affect Sucrase. 61f2aed5b Disallow await inside arrow functions (#9074) 🚫 Error handling out of scope for Sucrase. 07eaa3c63 Ignore empty fixture directories and fix fixtures in the parser (#9113) 🚫 Test-only. 393283053 Parse non-octals with leading zeros in non strict mode correctly (#9114) 🚫 Sucrase assumes strict mode, so this doesn't apply. fa9df678a Move tests from babylon to babel-parser and enable one test that works now 🚫 Test-only. fdc869ce1 Merge pull request #8289 from valtech-nyc/implement-smart-pipeline-in-parser ✅ Almost all logic was for error-reporting and complexity around node creation, but I did add # as a valid expression. 282129ea6 v7.2.0 🚫 Release only. 4ca35ef8b Fix running flow on travis and update flow (#9128) 🚫 Types only. 72471aff6 Handle flow comments with leading spaces (#9168) 🚫 Sucrase doesn't do anything special for flow comments. c1499b13a v7.2.2 🚫 Release only. 5cb38995c Allow keywords to be used in type annotations (#9184) ✅ I also fixed this for TypeScript. 0bb720401 v7.2.3 🚫 Release only. b5177ce29 babel-parser: typescript: add missing bigint keyword (#9230) 🚫 Test only. 60ffe1d10 parser, smart pipes: Add test for async–await 🚫 Test only. c586d4e8c parser, smart pipes: Add support for yield in pipeline bodies 🚫 Only validation change, startsExpr was removed from Sucrase. a58893d1e Ensure modifiers are included in TSParameterProperty ranges (#9276) 🚫 AST only. e43777bb5 Fix location for typescript type assertions in AST (#9284) 🚫 AST only, wasn't a problem in Sucrase tokens. 03022d169 Throw error if TypeScript class has empty implements (#9292) 🚫 Error handling only. 46e3f6df1 @babel/parser: include leading character into range of generic ArrowFunctionExpression (#9295) 🚫 AST only. 2cc037675 @babel/parser(ts): Add parsing of type import (#9302) 🚫 Already done in #380. 9764718c3 Disallow trailing comma after rest (#9311) 🚫 Error handling only. 5889620a6 Disallow `new import(x)` and `import(x,)` (#9313) 🚫 Error handling only. 3e4b608a8 Parse class heritage as strict mode code (#9315) 🚫 Sucrase is always in strict mode. 694e3fd8c Merge declaration and init of props in parser's state (#9312) 🚫 Refactor that isn't relevant to Sucrase. e8038863c Fix range on TypeScript this type predicate (#9339) 🚫 AST only. 34c9890f4 Fix range on TypeScript index signature parameters (#9335) 🚫 AST only. aaec2cd51 Fix handling newline with TypeScript declare and abstract classes (#9328) ✅ Implemented newline checking in various places. 0a88230ec Disallow async functions as loop bodies (#9314) 🚫 Error handling only. a2e6d8e96 Disallow usage of invalid keyword after export abstract statement in Typescript (#9336) 🚫 Error handling only. 96a734314 Merge pull request #9348 from danez/perf 🚫 Nothing stood out as being valuable to incorporate. f6ee26c3d v7.3.0 🚫 Release only. af88e63df fix new keyword broken by recent refactoring (#9377) 🚫 Not relevant in Sucrase. f2af6c117 v7.3.1 🚫 Release only. f77c450cd Bump prettier (#9373) 🚫 Tooling only. 65febdd13 Refactor import and export parsing (#9326) 🚫 Skipping refactor for now since it's not clear that I'll need it. 93e1b5e61 Merge pull request #9375 from danez/contextual-let 🚫 Not necessary for strict mode. 8bc9f9a05 fix: Allow toplevel await when option true and correctly mark await keyword as unexpected (#9371) 🚫 Error handling only. 42c5d3fc4 Correctly fail for invalid yield in for (#9398) 🚫 Error handling only. 46ba5940c Make yield a contextual keyword (#9400) 🚫 Not necessary for strict mode. 7dc157f9b Fix location/range on TypeScript ExportNamedDeclarations (#9406) 🚫 AST only.
alangpierce
added a commit
that referenced
this issue
Mar 31, 2019
Progress toward #437 Notes about each change: 4e1d6e7ff v7.1.6 🚫 Release only. a2afb974b Fix parsing typescript function types with destructuring (#9035) 🚫 Already fixed with #278. 445b14148 Better error for disallowed trailing commas/parameters after rest elements (#9046) 🚫 Just error reporting. e7f0c065c Bump some deps (#9056) 🚫 Nothing to do. 4f16a12c0 Fix bug with parsing TS generic async arrow function (#9055) 🚫 Sucrase seems unaffected by bug. d2971a195 Fix compatibility between typescript and jsx plugins in interface declarations (#9058) 🚫 Sucrase seems unaffected by bug. 856edbf95 [flow] Allow type casts in array patterns inside arrow parameters (#9069) 🚫 Bug caused by error reporting, doesn't affect Sucrase. 61f2aed5b Disallow await inside arrow functions (#9074) 🚫 Error handling out of scope for Sucrase. 07eaa3c63 Ignore empty fixture directories and fix fixtures in the parser (#9113) 🚫 Test-only. 393283053 Parse non-octals with leading zeros in non strict mode correctly (#9114) 🚫 Sucrase assumes strict mode, so this doesn't apply. fa9df678a Move tests from babylon to babel-parser and enable one test that works now 🚫 Test-only. fdc869ce1 Merge pull request #8289 from valtech-nyc/implement-smart-pipeline-in-parser ✅ Almost all logic was for error-reporting and complexity around node creation, but I did add # as a valid expression. 282129ea6 v7.2.0 🚫 Release only. 4ca35ef8b Fix running flow on travis and update flow (#9128) 🚫 Types only. 72471aff6 Handle flow comments with leading spaces (#9168) 🚫 Sucrase doesn't do anything special for flow comments. c1499b13a v7.2.2 🚫 Release only. 5cb38995c Allow keywords to be used in type annotations (#9184) ✅ I also fixed this for TypeScript. 0bb720401 v7.2.3 🚫 Release only. b5177ce29 babel-parser: typescript: add missing bigint keyword (#9230) 🚫 Test only. 60ffe1d10 parser, smart pipes: Add test for async–await 🚫 Test only. c586d4e8c parser, smart pipes: Add support for yield in pipeline bodies 🚫 Only validation change, startsExpr was removed from Sucrase. a58893d1e Ensure modifiers are included in TSParameterProperty ranges (#9276) 🚫 AST only. e43777bb5 Fix location for typescript type assertions in AST (#9284) 🚫 AST only, wasn't a problem in Sucrase tokens. 03022d169 Throw error if TypeScript class has empty implements (#9292) 🚫 Error handling only. 46e3f6df1 @babel/parser: include leading character into range of generic ArrowFunctionExpression (#9295) 🚫 AST only. 2cc037675 @babel/parser(ts): Add parsing of type import (#9302) 🚫 Already done in #380. 9764718c3 Disallow trailing comma after rest (#9311) 🚫 Error handling only. 5889620a6 Disallow `new import(x)` and `import(x,)` (#9313) 🚫 Error handling only. 3e4b608a8 Parse class heritage as strict mode code (#9315) 🚫 Sucrase is always in strict mode. 694e3fd8c Merge declaration and init of props in parser's state (#9312) 🚫 Refactor that isn't relevant to Sucrase. e8038863c Fix range on TypeScript this type predicate (#9339) 🚫 AST only. 34c9890f4 Fix range on TypeScript index signature parameters (#9335) 🚫 AST only. aaec2cd51 Fix handling newline with TypeScript declare and abstract classes (#9328) ✅ Implemented newline checking in various places. 0a88230ec Disallow async functions as loop bodies (#9314) 🚫 Error handling only. a2e6d8e96 Disallow usage of invalid keyword after export abstract statement in Typescript (#9336) 🚫 Error handling only. 96a734314 Merge pull request #9348 from danez/perf 🚫 Nothing stood out as being valuable to incorporate. f6ee26c3d v7.3.0 🚫 Release only. af88e63df fix new keyword broken by recent refactoring (#9377) 🚫 Not relevant in Sucrase. f2af6c117 v7.3.1 🚫 Release only. f77c450cd Bump prettier (#9373) 🚫 Tooling only. 65febdd13 Refactor import and export parsing (#9326) 🚫 Skipping refactor for now since it's not clear that I'll need it. 93e1b5e61 Merge pull request #9375 from danez/contextual-let 🚫 Not necessary for strict mode. 8bc9f9a05 fix: Allow toplevel await when option true and correctly mark await keyword as unexpected (#9371) 🚫 Error handling only. 42c5d3fc4 Correctly fail for invalid yield in for (#9398) 🚫 Error handling only. 46ba5940c Make yield a contextual keyword (#9400) 🚫 Not necessary for strict mode. 7dc157f9b Fix location/range on TypeScript ExportNamedDeclarations (#9406) 🚫 AST only.
alangpierce
added a commit
that referenced
this issue
Mar 31, 2019
Fixes #437 Details: 828169e61 Fix line continuation with Unicode line terminators (#9403) 🚫 We don't do escape parsing anyway. 4c4c22a31 Run prettier 🚫 Tools only. 00c3e3c8e Fixed link to @babel/parser's issues in README (#9427) 🚫 Docs only. 9eb010da5 Unify reserved word checking and update error messages (#9402) 🚫 Error handling only. 344d35bbe Simplify await and yield tracking in params (#9405) 🚫 Error handling only. d896ce2b5 v7.3.2 🚫 Release only. e03e5ba01 Add TypeScript definitions for parser plugin options. (#9457) 🚫 Types only. 07b0f22a3 Fix range for TypeScript optional parameter in arrow function (#9463) 🚫 AST only. d1514f57b Typescript function destructured params (#9431) 🚫 Already fixed in my code (with a fix that I think is better). 2817844e8 Fix regression with let (#9477) 🚫 This doesn't seem to affect Sucrase. d349b74a4 Better error output in parser tests (#9491) 🚫 Test only. 4ba998c5d Add importKind to spec 🚫 Types only. d1fe2d05f v7.3.3 🚫 Release only. 058f05742 Also check AssignmentPatterns for export name (#9521) 🚫 Error handling only. a1ea765b9 Make tests spec compliant and avoid duplicate declarations in input files (#9522) 🚫 Test only. dd8b700a2 Parenthesized expressions (#8025) 🚫 New feature that won't go into Sucrase. 9f3457797 Fix TypeScript parsers missing token check (#9571) (#9572) ✅ Added new check with test. fc1ea7f49 Revert "Parenthesized expressions (#8025)" 🚫 New feature that won't go into Sucrase. 1f6454cc9 v7.3.4 🚫 Release only. a7391144b Introduce scope tracking in the parser (#9493) 🚫 Looks like this is just for error handling. e6c1065d1 Fix strict mode prescanning with EmptyStatement (#9585) 🚫 We don't detect strict mode. d0e196d21 Treat for loop body as part of loop scope (#9586) 🚫 Scopes not tracked in Sucrase in the same way. 0345c1bc1 Use `for..of Object.keys` instead of `for..in` (#9518) 🚫 Not relevant for Sucrase. 244e4580e Remove always false param allowExpressionBody (#9591) ✅ Removed, plus removed some other unnecessary params. a029071b8 [TS] Correctly forget `await`s after parsing async arrows with type args (#9593) 🚫 Doesn't come up in Sucrase. e883ff295 Merge pull request #9597 from danez/Update-charcodes 🚫 Mostly just changes in types. 43eed1ac9 Check exported bindings are defined (#9589) 🚫 Error handling only. 5cb280f98 Fix scope check for 2nd+ lexical bindings (#9600) 🚫 Error handling only. 208195f42 Disallow duplicate params in methods (#9599) 🚫 Error handling only. 98ab1b642 Refactor parsing object members (#9607) 🚫 I won't try to port this refactor for now. f13f4adcb [TS] Disallow type casts in arrow parameters (#9612) 🚫 Error handling only. 17f4195bc Allow any reserved word in `export {} from` specifiers (#9616) 🚫 Already works in Sucrase. c60c4dd37 Partial Application Syntax: Stage 1 (#9343) ✅ Added basic parsing for ? expression. d832c0f43 Add parser support for placeholders (#9364) 🚫 I won't include this feature in Sucrase. 54ba6d80c Update identifier parsing per Unicode v12 (#9637) 🚫 Sucrase doesn't need this validation. 29999007f Disallow escape sequences in contextual keywords (#9618) 🚫 We don't support identifier escape sequences in the first place. fba5655a4 Parenthesized expressions (#8025) 🚫 I won't include this feature in Sucrase. e53be4b38 [TS] Allow context type annotation on getters/setters (#9641) 🚫 Bug in validation that Sucrase doesn't do. d8a532983 Reorganize token types and use a map for them (#9645) 🚫 Not really relevant for current Sucrase code. cf4bd8bb8 Remove input and length from state (#9646) 🚫 Not relevant for Sucrase. 29cd27b54 Partial application plugin (#9474) 🚫 Tests only. 25a3825a1 TypeScript Constant contexts (#9534) ✅ Added test, already works from previous change to make it an identifier. cc4560842 Add `readonly` to TypeScript type modifier (#9529) ✅ Added new case with test. 48d66eb64 Correctly parse TS TypeAssertions around arrow functions (#9699) 🚫 AST only, I think. f1328fb91 v7.4.0 🚫 Release only. ab41cb2cd Fix scope checks with enabled flow plugin (#9719) 🚫 Scope code doesn't exist in Sucrase. 2201fd839 Modules might be in loose mode when checking for undecl exports (#9725) 🚫 Sucrase always uses strict mode. 7dea0f23d v7.4.2 🚫 Release only. ef0722b4b Fix compatibility between estree and TS plugin (#9700) 🚫 Sucrase doesn't support estree mode. aaefc83a6 Allow HTML comments on first line (#9760) 🚫 Unclear what this is needed for, but doesn't seem important in Sucrase. d720c6cff Explicit labels for tokenTypes (#9761) 🚫 Internal change. 444daf922 Optimize parseBindingAtom code to get better error messages (#9762) 🚫 Error checking only. 2867bbf19 [typescript] parsing template literal as type (#9748) ✅ Added new case with test. 7f4427432 Parse right-hand-side of for/of as an assignment expression (#9767) 🚫 Error checking only. 6bc9e7ebd Correctly check for-in and for-of loop for invalid left-hand side (#9768) 🚫 Error checking only. 60d7e940e Fix merge error 🚫 Not relevant to Sucrase.
alangpierce
added a commit
that referenced
this issue
Mar 31, 2019
Fixes #437 Details: 828169e61 Fix line continuation with Unicode line terminators (#9403) 🚫 We don't do escape parsing anyway. 4c4c22a31 Run prettier 🚫 Tools only. 00c3e3c8e Fixed link to @babel/parser's issues in README (#9427) 🚫 Docs only. 9eb010da5 Unify reserved word checking and update error messages (#9402) 🚫 Error handling only. 344d35bbe Simplify await and yield tracking in params (#9405) 🚫 Error handling only. d896ce2b5 v7.3.2 🚫 Release only. e03e5ba01 Add TypeScript definitions for parser plugin options. (#9457) 🚫 Types only. 07b0f22a3 Fix range for TypeScript optional parameter in arrow function (#9463) 🚫 AST only. d1514f57b Typescript function destructured params (#9431) 🚫 Already fixed in my code (with a fix that I think is better). 2817844e8 Fix regression with let (#9477) 🚫 This doesn't seem to affect Sucrase. d349b74a4 Better error output in parser tests (#9491) 🚫 Test only. 4ba998c5d Add importKind to spec 🚫 Types only. d1fe2d05f v7.3.3 🚫 Release only. 058f05742 Also check AssignmentPatterns for export name (#9521) 🚫 Error handling only. a1ea765b9 Make tests spec compliant and avoid duplicate declarations in input files (#9522) 🚫 Test only. dd8b700a2 Parenthesized expressions (#8025) 🚫 New feature that won't go into Sucrase. 9f3457797 Fix TypeScript parsers missing token check (#9571) (#9572) ✅ Added new check with test. fc1ea7f49 Revert "Parenthesized expressions (#8025)" 🚫 New feature that won't go into Sucrase. 1f6454cc9 v7.3.4 🚫 Release only. a7391144b Introduce scope tracking in the parser (#9493) 🚫 Looks like this is just for error handling. e6c1065d1 Fix strict mode prescanning with EmptyStatement (#9585) 🚫 We don't detect strict mode. d0e196d21 Treat for loop body as part of loop scope (#9586) 🚫 Scopes not tracked in Sucrase in the same way. 0345c1bc1 Use `for..of Object.keys` instead of `for..in` (#9518) 🚫 Not relevant for Sucrase. 244e4580e Remove always false param allowExpressionBody (#9591) ✅ Removed, plus removed some other unnecessary params. a029071b8 [TS] Correctly forget `await`s after parsing async arrows with type args (#9593) 🚫 Doesn't come up in Sucrase. e883ff295 Merge pull request #9597 from danez/Update-charcodes 🚫 Mostly just changes in types. 43eed1ac9 Check exported bindings are defined (#9589) 🚫 Error handling only. 5cb280f98 Fix scope check for 2nd+ lexical bindings (#9600) 🚫 Error handling only. 208195f42 Disallow duplicate params in methods (#9599) 🚫 Error handling only. 98ab1b642 Refactor parsing object members (#9607) 🚫 I won't try to port this refactor for now. f13f4adcb [TS] Disallow type casts in arrow parameters (#9612) 🚫 Error handling only. 17f4195bc Allow any reserved word in `export {} from` specifiers (#9616) 🚫 Already works in Sucrase. c60c4dd37 Partial Application Syntax: Stage 1 (#9343) ✅ Added basic parsing for ? expression. d832c0f43 Add parser support for placeholders (#9364) 🚫 I won't include this feature in Sucrase. 54ba6d80c Update identifier parsing per Unicode v12 (#9637) 🚫 Sucrase doesn't need this validation. 29999007f Disallow escape sequences in contextual keywords (#9618) 🚫 We don't support identifier escape sequences in the first place. fba5655a4 Parenthesized expressions (#8025) 🚫 I won't include this feature in Sucrase. e53be4b38 [TS] Allow context type annotation on getters/setters (#9641) 🚫 Bug in validation that Sucrase doesn't do. d8a532983 Reorganize token types and use a map for them (#9645) 🚫 Not really relevant for current Sucrase code. cf4bd8bb8 Remove input and length from state (#9646) 🚫 Not relevant for Sucrase. 29cd27b54 Partial application plugin (#9474) 🚫 Tests only. 25a3825a1 TypeScript Constant contexts (#9534) ✅ Added test, already works from previous change to make it an identifier. cc4560842 Add `readonly` to TypeScript type modifier (#9529) ✅ Added new case with test. 48d66eb64 Correctly parse TS TypeAssertions around arrow functions (#9699) 🚫 AST only, I think. f1328fb91 v7.4.0 🚫 Release only. ab41cb2cd Fix scope checks with enabled flow plugin (#9719) 🚫 Scope code doesn't exist in Sucrase. 2201fd839 Modules might be in loose mode when checking for undecl exports (#9725) 🚫 Sucrase always uses strict mode. 7dea0f23d v7.4.2 🚫 Release only. ef0722b4b Fix compatibility between estree and TS plugin (#9700) 🚫 Sucrase doesn't support estree mode. aaefc83a6 Allow HTML comments on first line (#9760) 🚫 Unclear what this is needed for, but doesn't seem important in Sucrase. d720c6cff Explicit labels for tokenTypes (#9761) 🚫 Internal change. 444daf922 Optimize parseBindingAtom code to get better error messages (#9762) 🚫 Error checking only. 2867bbf19 [typescript] parsing template literal as type (#9748) ✅ Added new case with test. 7f4427432 Parse right-hand-side of for/of as an assignment expression (#9767) 🚫 Error checking only. 6bc9e7ebd Correctly check for-in and for-of loop for invalid left-hand side (#9768) 🚫 Error checking only. 60d7e940e Fix merge error 🚫 Not relevant to Sucrase.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Coming in TypeScript 3.4.0 (link)
Playground link
The text was updated successfully, but these errors were encountered: