{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":25880891,"defaultBranch":"main","name":"flow","ownerLogin":"facebook","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-10-28T17:17:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/69631?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714416233.0","currentOid":""},"activityList":{"items":[{"before":"12a1a471061954a8ba11761c957696887fcacdb7","after":"e5f2baffe29d033371e2bcfeb8326faa0c037dc6","ref":"refs/heads/gh-pages","pushedAt":"2024-05-03T14:21:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"96d3d3989e3d8c84052971c31b1e8f97530d7493","after":"5f2a56824404ec62e1b18177f32fd4d36678cc52","ref":"refs/heads/main","pushedAt":"2024-05-03T14:10:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] Ignore the content of `exact_reason` in `Slice_utils.mk_object`\n\nSummary:\nAs the effort to replace `ExactT` with EvalT-based implementation, I want to lock down all places where we construct `ExactT`. This is the final non-EvalT-like use case, and we still haven't completely figured out why it's necessary to preserve existing behavior and perf.\n\nThis diff aims to show that at least reason is not the reason this is critical, since we can ignore the reason content, since the last call site passes in a reason for `exact_reason` to be the same as the `def_reason`.\n\nBuilding on this knowledge in the next diff, I will rename this param to avoid future confusion.\n\nChangelog: [internal]\n\nReviewed By: gkz\n\nDifferential Revision: D56916901\n\nfbshipit-source-id: 2c9002247282b50614962a17c42c2b460e7810b1","shortMessageHtmlLink":"[flow] Ignore the content of exact_reason in Slice_utils.mk_object"}},{"before":"52c2fb82f157ac83027be3e6251af57ea44fa700","after":"12a1a471061954a8ba11761c957696887fcacdb7","ref":"refs/heads/gh-pages","pushedAt":"2024-05-03T05:47:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"4656f28ad9b5c22e0899fda1e0b0d0a69c5633ce","after":"96d3d3989e3d8c84052971c31b1e8f97530d7493","ref":"refs/heads/main","pushedAt":"2024-05-03T05:37:03.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] Kill support for $CharSet\n\nSummary: Changelog: [errors] Support for $CharSet, an undocumented feature, has been removed. RegExp$flags, which depends on $CharSet, is also removed. In most cases, you should replace these types with `string`.\n\nReviewed By: gkz\n\nDifferential Revision: D56716720\n\nfbshipit-source-id: 95d5ac67da818958979626ef92810d379dbce264","shortMessageHtmlLink":"[flow] Kill support for $CharSet"}},{"before":"7fa0ed454697b82e67f94bae5978dcd69b7f63a3","after":"52c2fb82f157ac83027be3e6251af57ea44fa700","ref":"refs/heads/gh-pages","pushedAt":"2024-05-03T04:58:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"35ec3315f2511e0d220fb0d04bb72609e1bb6988","after":"4656f28ad9b5c22e0899fda1e0b0d0a69c5633ce","ref":"refs/heads/main","pushedAt":"2024-05-03T04:48:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] fix printing of tuple elements with variance\n\nSummary:\nThe type `$ReadOnly<[a: number, string]>`, can also be expressed by passing the polarity to the tuple element. To do so, however, we need to have a label for each element. (The form `[+number]` is not parseable.)\n\nWe change print to output a made-up name `_i` (where `i` the order of the element) for elements with non-neutral variance. E.g. `[+a: number, +_1: string]`.\n\nSame holds for optional element.\n\nChangelog: [internal]\n\nReviewed By: gkz\n\nDifferential Revision: D56913842\n\nfbshipit-source-id: 878b95fcac33588df98344811fc8dba2371a0748","shortMessageHtmlLink":"[flow] fix printing of tuple elements with variance"}},{"before":"f65a86c8a2543f918fd68d96e842f6981de9a3a1","after":"7fa0ed454697b82e67f94bae5978dcd69b7f63a3","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T23:15:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"72ad1cc180419e0d196b04467eaf5af4a5c106c1","after":"f65a86c8a2543f918fd68d96e842f6981de9a3a1","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T23:10:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"43cf83ccbd4ce49d88caa489e998d4823fb6b9fe","after":"35ec3315f2511e0d220fb0d04bb72609e1bb6988","ref":"refs/heads/main","pushedAt":"2024-05-02T23:05:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] Kill $asyncIterator\n\nSummary:\nIt's added in D4018357, but not used anywhere, even in that diff...\n\nChangelog: [libdef] `$asyncIterator`, which is never a real global, is removed from global libdef.\n\nReviewed By: gkz\n\nDifferential Revision: D56908475\n\nfbshipit-source-id: ea42e76675eaae0309625b2da078a145d49f7dd0","shortMessageHtmlLink":"[flow] Kill $asyncIterator"}},{"before":"8680dea85b3723c1d05cf193e2befdf33a951164","after":"43cf83ccbd4ce49d88caa489e998d4823fb6b9fe","ref":"refs/heads/main","pushedAt":"2024-05-02T23:00:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow][autocomplete] Complete component and hook keyword\n\nSummary:\nIn additional to add the two keywords to statements keyword, I also special cased `export default `, since by the existing implementation, it will only put expression keywords there, and component and hook are not expression keywords\n\nChangelog: [ide] Under `component_syntax=true`, autocomplete will provide `component` and `hook` keyword in appropriate places\n\nReviewed By: pieterv\n\nDifferential Revision: D56907606\n\nfbshipit-source-id: db3093b75c5710dd73aad2a9fc007a9dee815f5c","shortMessageHtmlLink":"[flow][autocomplete] Complete component and hook keyword"}},{"before":"cb397ffd11e8286195b6a215e526e5f2cf667411","after":"72ad1cc180419e0d196b04467eaf5af4a5c106c1","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T19:07:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"812dd64574aea8a088fe515a96f167b370f7b86c","after":"8680dea85b3723c1d05cf193e2befdf33a951164","ref":"refs/heads/main","pushedAt":"2024-05-02T18:57:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] Builtin await typing through conditional type infra instead of relying on $await hack\n\nSummary:\nIn this diff, we replace the two sites where to do the hacky `$await -> CallT` to unwrap Promise with a builtin implementation, powered by conditional type infra.\n\nSince we are dealing with expressions, we have LTI guarantee, so we can inspect the input type. Therefore, we can easily implement the distribute-over-union behavior that currently exist for the `await` operator. As a side effect, we can remove a bunch of spurious underconstrained errors, since the EmptyT case is handled automatically, instead of hitting the case where `EmptyT ~> Promise` where we miss empty propagation.\n\nChangelog: [internal]\n\nReviewed By: panagosg7\n\nDifferential Revision: D56861865\n\nfbshipit-source-id: 431d3a76d42ae4159cfe5914266bd76d52a656e7","shortMessageHtmlLink":"[flow] Builtin await typing through conditional type infra instead of…"}},{"before":"9b8141b1b2559c4a8c4a50f27ec41dcfb87a83ae","after":"cb397ffd11e8286195b6a215e526e5f2cf667411","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T18:42:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"5c0e7178adf1e9ada25bae4143f2aba1a0dcb884","after":"812dd64574aea8a088fe515a96f167b370f7b86c","ref":"refs/heads/main","pushedAt":"2024-05-02T18:30:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow][as-const] hints propagate through \"as const\"\n\nSummary: Changelog: [internal]\n\nReviewed By: SamChou19815\n\nDifferential Revision: D56888740\n\nfbshipit-source-id: b6f972716b5bedeaaf337eb03a4c74fa3c7c872f","shortMessageHtmlLink":"[flow][as-const] hints propagate through \"as const\""}},{"before":"ee842c785c2d68e3756afabb107547ccb4eea457","after":"9b8141b1b2559c4a8c4a50f27ec41dcfb87a83ae","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T17:53:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"d377d4dddf2c263c21bb69ba500470684be7d171","after":"5c0e7178adf1e9ada25bae4143f2aba1a0dcb884","ref":"refs/heads/main","pushedAt":"2024-05-02T17:41:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] Remove reason inspection in cache_instantiation\n\nSummary:\nSince there is no actual caching happening here, the test of RTypeAppImplicit no longer makes sense.\n\nChangelog: [internal]\n\nReviewed By: panagosg7\n\nDifferential Revision: D56864484\n\nfbshipit-source-id: 1c1c79b715be590f3d15b9b12dca511c69116388","shortMessageHtmlLink":"[flow] Remove reason inspection in cache_instantiation"}},{"before":"f4d628f9882c8efa4ad1f260ff6b14ffec7e4922","after":"ee842c785c2d68e3756afabb107547ccb4eea457","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T16:50:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"787994d5a3edf03d6f36a08f1506f79945e0cacf","after":"d377d4dddf2c263c21bb69ba500470684be7d171","ref":"refs/heads/main","pushedAt":"2024-05-02T16:39:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow][refactor][EZ] Inline the last cache_instantiation\n\nSummary:\nThis is the last site where we can potentially cache. Inline it to limit the damage.\n\nChangelog: [internal]\n\nReviewed By: panagosg7\n\nDifferential Revision: D56861814\n\nfbshipit-source-id: 7c0be612477c8a8482fbc7ee7bcaac0c8a25fc99","shortMessageHtmlLink":"[flow][refactor][EZ] Inline the last cache_instantiation"}},{"before":"4e999881f87e1ec00dc26ce9b6b4819a6dbee99b","after":"f4d628f9882c8efa4ad1f260ff6b14ffec7e4922","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T16:12:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"49cb907eebaaa416f60b49774e6aca0118a98b43","after":"787994d5a3edf03d6f36a08f1506f79945e0cacf","ref":"refs/heads/main","pushedAt":"2024-05-02T16:01:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow][cleanup][EZ] Inline cache_instantiate in non-caching cases\n\nSummary:\nIn this code path, we are running the non-caching version of cache_instantiate, which, according to the [implementation](https://github.com/facebook/flow/blob/fcb60a07fdf2242fa88e32d7e21ca1932ea16b13/src/typing/flow_js.ml#L227-L242), is just an identitiy function. Let's just inline it.\n\nChangelog: [internal]\n\nReviewed By: panagosg7\n\nDifferential Revision: D56853727\n\nfbshipit-source-id: e52c8a26daf4c1450c154d7fe913a8e7e0a7188a","shortMessageHtmlLink":"[flow][cleanup][EZ] Inline cache_instantiate in non-caching cases"}},{"before":"a1d47efc57997a4a38ed79aec411419f45190f6d","after":"4e999881f87e1ec00dc26ce9b6b4819a6dbee99b","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T15:17:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"7df19bfd91c75e78daed6f5ed24f42d4ec44e33d","after":"49cb907eebaaa416f60b49774e6aca0118a98b43","ref":"refs/heads/main","pushedAt":"2024-05-02T15:07:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] Pass `None` to `exact_reason` param of `mk_object_type` to stop `ExactT` construction (7/n)\n\nSummary:\nI want to kill `ExactT`. To achieve that, we need to first migrate away all the sites that construct `ExactT`. One source of construction is in `slice_utils` [here](https://github.com/facebook/flow/blob/d9d9319cde578cff73e83071a4e62d992ceb855f/src/typing/slice_utils.ml#L50-L63), when we pass in a `Some _` for `exact_reason`.\n\nIn this diff, we migrate the callsite in `object_rep` for react element creation.\n\nChangelog: [internal]\n\nReviewed By: gkz\n\nDifferential Revision: D56864785\n\nfbshipit-source-id: a48aa01ccfd5cee22a0fc565e8b732a0b0209373","shortMessageHtmlLink":"[flow] Pass None to exact_reason param of mk_object_type to sto…"}},{"before":"d1551d2cbea098d4b8efb4081c4383de41fb1ab1","after":"a1d47efc57997a4a38ed79aec411419f45190f6d","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T08:06:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"c2f5ca9469c8a68d12436c4156ea7b074fa07c8c","after":"7df19bfd91c75e78daed6f5ed24f42d4ec44e33d","ref":"refs/heads/main","pushedAt":"2024-05-02T07:56:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow][tuples] Add option for gating inexact tuple types syntax\n\nSummary:\nChangelog: [internal]\n\nThe boilerplate of adding an option to gate the future implementation of inexact tuple types.\n\nReviewed By: SamChou19815\n\nDifferential Revision: D56713880\n\nfbshipit-source-id: d73f3eb47751e55bdabaeeee32574cf3e899592e","shortMessageHtmlLink":"[flow][tuples] Add option for gating inexact tuple types syntax"}},{"before":"0007dc6e05e1781a806f8fa6edc1f79330c5312b","after":"d1551d2cbea098d4b8efb4081c4383de41fb1ab1","ref":"refs/heads/gh-pages","pushedAt":"2024-05-01T22:26:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"8b29a1f4c014c39e8d8d44301689928464d67f06","after":"c2f5ca9469c8a68d12436c4156ea7b074fa07c8c","ref":"refs/heads/main","pushedAt":"2024-05-01T22:17:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] Do not \"cache\" instantiation in `instantiate_poly_with_targs` 1/n\n\nSummary:\nAccording to the [implementation](https://github.com/facebook/flow/blob/fcb60a07fdf2242fa88e32d7e21ca1932ea16b13/src/typing/flow_js.ml#L227-L242), there is no real caching here, which was gone since LTI. There are only some reason description and unification for the purpose of tweaking reasons, which is very hard to understand, and likely causing issues elsewhere.\n\nThis diff eliminates the \"caching\" in one of the last few call sites where `cache` can be set to true.\n\nChangelog: [internal]\n\nReviewed By: panagosg7\n\nDifferential Revision: D56801692\n\nfbshipit-source-id: dfbec538f606273599cfc5237ee5fde78e6c56c6","shortMessageHtmlLink":"[flow] Do not \"cache\" instantiation in instantiate_poly_with_targs 1/n"}},{"before":"a60503fb55b9b3de09ab7f86c03f433b95c0a2d8","after":"0007dc6e05e1781a806f8fa6edc1f79330c5312b","ref":"refs/heads/gh-pages","pushedAt":"2024-05-01T21:08:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"f727f420042a919d3b3735c3c7049a23047c80e7","after":"8b29a1f4c014c39e8d8d44301689928464d67f06","ref":"refs/heads/main","pushedAt":"2024-05-01T20:57:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow] Make builtin lookup's any from error have a generic `RImplicitAny` description\n\nSummary:\nSince it's any, these description won't be visible to user in any ways. So let's just give it a more generic description, instead of letting callsites construct one without understanding the requirement.\n\nChangelog: [internal]\n\nReviewed By: panagosg7\n\nDifferential Revision: D56799561\n\nfbshipit-source-id: 571e16d32bb44d52d2e8e3b34bb9165a40ee53fc","shortMessageHtmlLink":"[flow] Make builtin lookup's any from error have a generic `RImplicit…"}},{"before":"5a099fa033ff207452b86a35809ba443c8ce0f95","after":"a60503fb55b9b3de09ab7f86c03f433b95c0a2d8","ref":"refs/heads/gh-pages","pushedAt":"2024-05-01T18:28:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"flow-bot","name":null,"path":"/flow-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19884688?s=80&v=4"},"commit":{"message":"Updates","shortMessageHtmlLink":"Updates"}},{"before":"8948694d6b847303588220cd928aadb5bac04a89","after":"f727f420042a919d3b3735c3c7049a23047c80e7","ref":"refs/heads/main","pushedAt":"2024-05-01T18:18:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"[flow][dev-tools] Hermes-parser based `getAST` for error suppression\n\nSummary:\nThis diff removes our dependence on `flow ast` command for error suppression. Previously, we rely on it to get the AST of the source code, so we can choose what kind of suppressions to add (e.g. we special case jsx elements since it's not always valid to add line comment above it).\n\n`flow ast` doesn't read from flowconfig and the parser configuration can become out of sync with the rest of the setup. In this diff, I switched us to use hermes-parser instead. We can remove all of our dependency on flow-bin as a result.\n\nThere is an important change: we can just use normal js string indexing to get characters, rather than going through the Buffer, since hermes-parser, like most of the other js tools (including the js_of_ocaml compiled flow.js, but not flow-bin ...), encode the string as utf-16 (the js string encoding), so we don't need to worry about these longer-than-1-byte characters. flow-bin handles it differently, probably as a result of negligence, but js_of_ocaml happens to correct it, because there is no straightforward way to get a byte out of a string in the JS.\n\nChangelog: [internal]\n\nReviewed By: pieterv\n\nDifferential Revision: D56796632\n\nfbshipit-source-id: fbe1f923d3b37614e7fd5274a9401a7c4749cc77","shortMessageHtmlLink":"[flow][dev-tools] Hermes-parser based getAST for error suppression"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQNU9ZAA","startCursor":null,"endCursor":null}},"title":"Activity · facebook/flow"}