{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":506171087,"defaultBranch":"main","name":"eqwalizer","ownerLogin":"WhatsApp","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-06-22T08:57:52.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5508982?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1704284470.0","currentOid":""},"activityList":{"items":[{"before":"32c528bd13327d8b1951ff57ec1aa664fab1d724","after":"376cb4e4d12f330bf05e4dae1da3f4dadbf8f188","ref":"refs/heads/main","pushedAt":"2024-06-26T16:53:55.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":"support narrowing in a form `true = ...`\n\nSummary: - supporting `true = SomeExpression` the same ways as `SomeExpression orelse throw(...)` (aka ?EQWALIZER_ASSERT)\n\nReviewed By: VLanvin\n\nDifferential Revision: D59059904\n\nfbshipit-source-id: d4f52a25c1585e73e33aafc1fefb0c31ac9e915d","shortMessageHtmlLink":"support narrowing in a form true = ..."}},{"before":"0a6767c8e22cbdfcb55919e1d8c2e22be5da843a","after":"32c528bd13327d8b1951ff57ec1aa664fab1d724","ref":"refs/heads/main","pushedAt":"2024-06-14T08:24:39.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":"Fix gen_statem:call dirty_timeout spec (#58)\n\nSummary:\nIntroduced in https://github.com/WhatsApp/eqwalizer/issues/25\n\nPull Request resolved: https://github.com/WhatsApp/eqwalizer/pull/58\n\nReviewed By: VLanvin\n\nDifferential Revision: D58527358\n\nPulled By: michalmuskala\n\nfbshipit-source-id: 4b3779170141e663c9380b088003c323c971e711","shortMessageHtmlLink":"Fix gen_statem:call dirty_timeout spec (#58)"}},{"before":"2d26851e57a7ff5ba02d5e628889b1a4615e6bd5","after":"0a6767c8e22cbdfcb55919e1d8c2e22be5da843a","ref":"refs/heads/main","pushedAt":"2024-06-06T13:06:56.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":"Disable smart elaboration of negation in guards\n\nSummary:\nAs title, do not narrow types under negations. The issue is that, currently, `not (V == a)` is refined identically to `(V == a)`, as the negation is not \"propagated\".\n\nOccurrence typing is still able to soundly refine types under negations, this is thus only a limitation for functions where occ typing is disabled.\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D58184266\n\nfbshipit-source-id: 4f71dd99971a7ce0dd73e61b0ebda435952fa4a1","shortMessageHtmlLink":"Disable smart elaboration of negation in guards"}},{"before":"8681566052e00ddd6c87ae00a2552454ad632df4","after":"2d26851e57a7ff5ba02d5e628889b1a4615e6bd5","ref":"refs/heads/main","pushedAt":"2024-06-04T10:15:07.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":"better occurrence for shapes\n\nSummary: - improvement to occurrence typing: if a non-existing property of a shape is restricted (the positive polarity of update operation), - then the result of the restriction `none()` rather than to the original shape type\n\nReviewed By: VLanvin\n\nDifferential Revision: D58092254\n\nfbshipit-source-id: ddb3e4f9b1abafd35906f09f05fe23bf4bb21b32","shortMessageHtmlLink":"better occurrence for shapes"}},{"before":"a2527ba47b7803126bc1d9c3387a82f426c2a787","after":"8681566052e00ddd6c87ae00a2552454ad632df4","ref":"refs/heads/main","pushedAt":"2024-06-03T11:07:44.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":"better support for element/2 in narrowing\n\nSummary:\n- this adds support for narrowing in a form of `element(1, MyTuple) == some_atom` which happens to be quite common\n- it seems that we also have enough infrastructure to add support for this in occurrence typing with small changes, but it requires a bit more effort, - adding support for occurrence typing is future work for now\n\nReviewed By: VLanvin\n\nDifferential Revision: D57774513\n\nfbshipit-source-id: c6bd45a74301b38f78ff6a72f1a977c0a4cdf776","shortMessageHtmlLink":"better support for element/2 in narrowing"}},{"before":"bae13c857558ba19aa586784bea9a233ab877b9f","after":"a2527ba47b7803126bc1d9c3387a82f426c2a787","ref":"refs/heads/main","pushedAt":"2024-05-24T13:01:28.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":"support `case predicate(X, ...) of true -> ...`\n\nSummary:\n- custom logic for expressions in a form `case predicate(X, ...) of true ->`\n- a narrowed environment (when the predicate succeeds) is used in the true branch of the case-expression\n\nReviewed By: michalmuskala\n\nDifferential Revision: D57748279\n\nfbshipit-source-id: a346feb04381f996b87ccf7f0ba3c239a0cc7e77","shortMessageHtmlLink":"support case predicate(X, ...) of true -> ..."}},{"before":"9362404c088b3b9234ac1cabfde0d917a4c013e7","after":"bae13c857558ba19aa586784bea9a233ab877b9f","ref":"refs/heads/main","pushedAt":"2024-05-24T08:32:53.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":"fix MacOS CI for GH (#56)\n\nSummary: Pull Request resolved: https://github.com/WhatsApp/eqwalizer/pull/56\n\nReviewed By: alanz\n\nDifferential Revision: D57748706\n\nPulled By: ilya-klyuchnikov\n\nfbshipit-source-id: eb373ace97ecaa9a38d22a7fb9089eacdbdf780b","shortMessageHtmlLink":"fix MacOS CI for GH (#56)"}},{"before":"9f90e9dff88286733bb28625b57d0e42abda1a37","after":"9362404c088b3b9234ac1cabfde0d917a4c013e7","ref":"refs/heads/main","pushedAt":"2024-05-22T14:03:54.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":"Update meet for dynamic case\n\nSummary:\nUse `BoundedDynamic(t)` as the meet of `Dynamic` and `t`, instead of just `Dynamic`.\n\nThis gives more info with types-on-hover.\n\nRecord type-checking becomes slightly more lenient with underspecced functions, because extracting a field from a record of type `BoundedDynamic(#rec{})` produces a value of type `BoundedDynamic(field_ty)`.\n\nSee tests for details about newly accepted code.\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D57624187\n\nfbshipit-source-id: 5e9bad73405058fd7e6aad93415cc8830f3f7082","shortMessageHtmlLink":"Update meet for dynamic case"}},{"before":"49a05bea0f936300be71c6727ff3c0c39682870b","after":"9f90e9dff88286733bb28625b57d0e42abda1a37","ref":"refs/heads/main","pushedAt":"2024-05-16T14:15:06.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":"OTP 25 compatibility\n\nSummary: as title\n\nReviewed By: VLanvin\n\nDifferential Revision: D57437373\n\nfbshipit-source-id: 9a30013043d38b0758b5767c70f70f00e8d683f8","shortMessageHtmlLink":"OTP 25 compatibility"}},{"before":"1649376cc781eb595368ad34ca650a4e756baf9a","after":"49a05bea0f936300be71c6727ff3c0c39682870b","ref":"refs/heads/main","pushedAt":"2024-05-14T13:12:50.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":"CustomReturn for erlang:min/2\n\nSummary:\nIt turns out that calls `erlang:min(X, Y)` when `X` is a number and `Y` is `number() | infinity` or `number() | undefined` are not so uncommon - and can be considered as an \"Erlangisms\". Programmers rely on the fact that `min(1, infinity) -> 1` or `min(1, undefined) -> 1`.\n\nVery ad-hoc custom handling for such cases.\n\nReviewed By: VLanvin\n\nDifferential Revision: D57249552\n\nfbshipit-source-id: 6bedce5381d23d60b7d21c1b0a115102540c204e","shortMessageHtmlLink":"CustomReturn for erlang:min/2"}},{"before":"266a1dd1486fe9e6fd0425b512806ee206fff188","after":"1649376cc781eb595368ad34ca650a4e756baf9a","ref":"refs/heads/main","pushedAt":"2024-05-13T10:41:49.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":"preparation for richer CustomReturn\n\nSummary:\nReworking CustomReturn to be able to do more (used in the next diff for custom logic for `erlang:min`):\n- passing the inferred types of the arguments\n- making it \"stateful\" - holding an `Util` instance - to be able to resolve/unfold remote types\n\nReviewed By: VLanvin\n\nDifferential Revision: D57248101\n\nfbshipit-source-id: 44a21f968783d7d9630a28907aab23d83ff1d62f","shortMessageHtmlLink":"preparation for richer CustomReturn"}},{"before":"ec3c430e2d6d26c5689589e7e35d70e30beec391","after":"266a1dd1486fe9e6fd0425b512806ee206fff188","ref":"refs/heads/main","pushedAt":"2024-05-13T10:09:54.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":"bug fix\n\nReviewed By: VLanvin\n\nDifferential Revision: D57249553\n\nfbshipit-source-id: 813889db5d591a9b72688648d2e0cdd26880fa67","shortMessageHtmlLink":"bug fix"}},{"before":"ffabb9f55869b82d91c0f7fe22ab57a3ca6a4e53","after":"ec3c430e2d6d26c5689589e7e35d70e30beec391","ref":"refs/heads/main","pushedAt":"2024-05-10T14:28:50.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":"more precise handling of maps:remove\n\nSummary: More precise handling of `maps:remove(Key, Map)` when `Map` is a shape and `Key` is not an atom literal: it makes all the associations in `Map` optional instead of converting to a dictionary.\n\nReviewed By: VLanvin\n\nDifferential Revision: D57205786\n\nfbshipit-source-id: b775b49ff48fb171b24f9880d2816dc1108f30c9","shortMessageHtmlLink":"more precise handling of maps:remove"}},{"before":"f12166ee5c9c09522839daaa47df237821b68fb8","after":"ffabb9f55869b82d91c0f7fe22ab57a3ca6a4e53","ref":"refs/heads/main","pushedAt":"2024-05-07T21:18:59.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":"Add docs for clause_not_covered\n\nSummary: Docs for the recent `clause_not_covered` error.\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D57045051\n\nfbshipit-source-id: 61eccda8d0e6565b707d9709aa7f3f29755ce91d","shortMessageHtmlLink":"Add docs for clause_not_covered"}},{"before":"bdeaf928617e92f24ccdf2c105a97f14ce9a2c67","after":"f12166ee5c9c09522839daaa47df237821b68fb8","ref":"refs/heads/main","pushedAt":"2024-05-03T13:55:58.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":"Uncovered clause detection\n\nSummary:\nAdd the simplest iteration of detection of uncovered function clauses.\n\nThe feature is disabled by default, but can be enabled with `EQWALIZER_CLAUSE_COVERAGE=true`.\n\nFor now, it only reports top-level uncovered clauses, without additional information.\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D56930809\n\nfbshipit-source-id: f781f5e3be4faba19a228d269f4d8c41f9d03f3f","shortMessageHtmlLink":"Uncovered clause detection"}},{"before":"f2556cd0f006bee2ebc0b0cc9cec4789f35cb23b","after":"bdeaf928617e92f24ccdf2c105a97f14ce9a2c67","ref":"refs/heads/main","pushedAt":"2024-05-02T10:55:37.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":"cleanup: no Patch anymore\n\nSummary: not used anymore\n\nReviewed By: VLanvin\n\nDifferential Revision: D56872431\n\nfbshipit-source-id: a7bdcf8fd8fe9edc5a3491d2097722345cbda1c4","shortMessageHtmlLink":"cleanup: no Patch anymore"}},{"before":"1dbdbbd8afb5f9336efa1dd58bbb389f026ffba6","after":"f2556cd0f006bee2ebc0b0cc9cec4789f35cb23b","ref":"refs/heads/main","pushedAt":"2024-04-22T13:26:51.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":"Fix subtyping dict < shape being too lenient\n\nSummary:\nThe root cause of D56416941 is subtyping being too lenient for dynamic dicts to shapes, causing dynamic dicts to be \"approximated away\" when joining types.\n\nThis fixes it by considering `#{dynamic() => dynamic()}` to be a subtype of any shape only when the subtyping polarity of the dict is negative.\n\nAlso change `narrow.adjustMapType` to preserve dynamic maps, to avoid introducing too much noise.\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D56416893\n\nfbshipit-source-id: 88e3f68b9e88f6d8b61556a3edbbdad2933a4235","shortMessageHtmlLink":"Fix subtyping dict < shape being too lenient"}},{"before":"f75ad547710816a40d91c7f664acc73e7c4ec9ce","after":"1dbdbbd8afb5f9336efa1dd58bbb389f026ffba6","ref":"refs/heads/main","pushedAt":"2024-04-02T17:16:03.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":"On-the-fly collection of diagnostics\n\nSummary:\nComplete rework of eqWAlizer's internals to provide on-the-fly collection of diagnostics, instead of relying on exceptions.\n\nSee `Pipeline.scala` for the central change in how errors are processed.\n\nMain implementation aspects:\n- Error tolerance based on patching is made obsolete, as errors are patched on the fly\n- An unlimited number of errors is now reported per function, including overloaded functions, although this can be easily limited if needed\n- When `tolerate_errors` is set to `false`, eqWAlizer only reports the first one still\n- For now, the diagnostics are still bundled along with `FuncDecl`s, to ensure consistency of the API. But later, we can send diagnostics independently at the end of the process.\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D54674962\n\nfbshipit-source-id: 388a96428ed853bddf5b4a1ef755363eaf9b13b4","shortMessageHtmlLink":"On-the-fly collection of diagnostics"}},{"before":"ce5f1ece71c11bd289cc5a176511bce6b11eadc7","after":"f75ad547710816a40d91c7f664acc73e7c4ec9ce","ref":"refs/heads/main","pushedAt":"2024-04-02T13:58:50.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":"Only consider common required keys when merging shapes\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D55636949\n\nfbshipit-source-id: 953daf6a4be54dc7ad497f15c839eaa173b1fa81","shortMessageHtmlLink":"Only consider common required keys when merging shapes"}},{"before":"b7ef13348380605fe8181492f1fa24b0e4889eef","after":"ce5f1ece71c11bd289cc5a176511bce6b11eadc7","ref":"refs/heads/main","pushedAt":"2024-04-02T11:42:56.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":"Improvements to ElabApply with shapes\n\nSummary:\nApply same idea as D54900007 to ElabApply:\n- Merge the result of the first inference step\n- Use the merged result for the second step, but don't merge that one\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D55524111\n\nfbshipit-source-id: a3ca3f7e055b5b57a18a676ee16d86cd42772aa5","shortMessageHtmlLink":"Improvements to ElabApply with shapes"}},{"before":"90eca40bf55c7a4573c105a6ec8b073f26ce1ec3","after":"b7ef13348380605fe8181492f1fa24b0e4889eef","ref":"refs/heads/main","pushedAt":"2024-03-25T16:00: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":"Use shell IPC protocol everywhere\n\nSummary:\nD51524775 was wrongfully reverted, so this restores it.\n\nThe new IPC protocol allows for file-level caching which will be useful for global eqWAlization in IDE.\n\nReviewed By: robertoaloi, alanz\n\nDifferential Revision: D55317200\n\nfbshipit-source-id: 5bd7e68a2f62310471431c447c7b0efcc5887203","shortMessageHtmlLink":"Use shell IPC protocol everywhere"}},{"before":"cb8e23bb750d4a53f0be85e8f8cd1bb81e90fe58","after":"90eca40bf55c7a4573c105a6ec8b073f26ce1ec3","ref":"refs/heads/main","pushedAt":"2024-03-23T23:14:38.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":"Migrate google java format from 1.7 -> 1.21.0 (#52)\n\nSummary:\nX-link: https://github.com/facebookexternal/OculusManufacturing/pull/524\n\nX-link: https://github.com/facebookexternal/fbpay/pull/3\n\nX-link: https://github.com/facebook/screenshot-tests-for-android/pull/324\n\nX-link: https://github.com/pytorch/executorch/pull/1771\n\nX-link: https://github.com/facebook/igl/pull/68\n\nX-link: https://github.com/facebook/mariana-trench/pull/153\n\nX-link: https://github.com/facebook/fresco/pull/2757\n\nX-link: https://github.com/facebook/litho/pull/974\n\nX-link: https://github.com/facebook/react-native/pull/42754\n\nX-link: https://github.com/facebook/hhvm/pull/9431\n\nPull Request resolved: https://github.com/WhatsApp/eqwalizer/pull/52\n\nX-link: https://github.com/facebookincubator/spectrum/pull/1858\n\nX-link: https://github.com/fbsamples/metapay/pull/1\n\nX-link: https://github.com/facebookincubator/fbjni/pull/95\n\nX-link: https://github.com/facebookincubator/Battery-Metrics/pull/30\n\nX-link: https://github.com/facebook/ktfmt/pull/440\n\nX-link: https://github.com/facebook/flipper/pull/5456\n\nX-link: https://github.com/facebook/hermes/pull/1290\n\nX-link: https://github.com/facebook/TextLayoutBuilder/pull/35\n\nX-link: https://github.com/facebook/SoLoader/pull/122\n\nallow-large-files\n\nThis diff migrates google java format form 1.7 to 1.21.0. This update will allow for new language features from java 17 and 21. This diff also formats all necessary files.\n\n Changelog:\n [Internal][Changed] - Updated format from google-java-format 1.7 -> 1.21.0\n\nReviewed By: IanChilds\n\nDifferential Revision: D52786052\n\nfbshipit-source-id: b675ae215084f340b93dfe628e329e696ca0616e","shortMessageHtmlLink":"Migrate google java format from 1.7 -> 1.21.0 (#52)"}},{"before":"ef8dbf3a359796415f9eee2098ab406d7d7d8958","after":"cb8e23bb750d4a53f0be85e8f8cd1bb81e90fe58","ref":"refs/heads/main","pushedAt":"2024-03-01T23:01:37.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":"Better handling of union of atoms in maps:get\n\nSummary: Collect possible atom literals for the key in custom elaboration of `maps:get` and union the associated values.\n\nReviewed By: ilya-klyuchnikov\n\nDifferential Revision: D54419232\n\nfbshipit-source-id: c7d3934000726885d45f3d5e0d32580a615fbc56","shortMessageHtmlLink":"Better handling of union of atoms in maps:get"}},{"before":"ab6dae7277d087ad7185d7dff6d7c8839c7ca117","after":"ef8dbf3a359796415f9eee2098ab406d7d7d8958","ref":"refs/heads/main","pushedAt":"2024-03-01T16:58:50.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":"Send structured diagnostic along with errors to ELP\n\nSummary:\nThis adds a `diagnostic` field to the `Error` struct sent to ELP, containing the structured diagnostic.\n\nFor now, the field is ignored on ELP's end.\n\nReviewed By: michalmuskala\n\nDifferential Revision: D54413114\n\nfbshipit-source-id: db2ca3b56d0dabc7dcb769178657ddce01029133","shortMessageHtmlLink":"Send structured diagnostic along with errors to ELP"}},{"before":"347ad2c58b85693ddd6a9a834c6a14595678ab2b","after":"ab6dae7277d087ad7185d7dff6d7c8839c7ca117","ref":"refs/heads/main","pushedAt":"2024-02-28T14:12:00.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":"Add eqWAlizer analyses and reporting\n\nSummary:\n- Deprecate ad-hoc analysis of escape hatches\n- Unified framework to write analyses in crate eqWAlizer, powered by `elp eqwalizer-stats`\n- Implement analysis of escape hatches using visitor trait\n\nReviewed By: alanz\n\nDifferential Revision: D54063805\n\nfbshipit-source-id: 3559f955074910877dee6a7eb8ff5a3dc5f2db6d","shortMessageHtmlLink":"Add eqWAlizer analyses and reporting"}},{"before":"d615b957e601dd87dc210c0512347af55d2658eb","after":"347ad2c58b85693ddd6a9a834c6a14595678ab2b","ref":"refs/heads/main","pushedAt":"2024-02-07T14:42:25.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":"Remove Mode.MiniElp\n\nSummary: Remove mode MiniElp in eqWAlizer\n\nReviewed By: ilya-klyuchnikov, michalmuskala\n\nDifferential Revision: D53473613\n\nfbshipit-source-id: 44412d29460bb675ae961dffb33487ce33264126","shortMessageHtmlLink":"Remove Mode.MiniElp"}},{"before":"5a6c332a8e0734aac2e9f97a19852e9837122702","after":"d615b957e601dd87dc210c0512347af55d2658eb","ref":"refs/heads/main","pushedAt":"2024-02-06T17:01:01.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":"Update READMEs to remove references to mini-elp\n\nSummary: As title. Add instructions to use `build-info.json` in ELP's README\n\nReviewed By: alanz\n\nDifferential Revision: D53473206\n\nfbshipit-source-id: ced608a35b515de553de0ce2259e20fc7932ecc3","shortMessageHtmlLink":"Update READMEs to remove references to mini-elp"}},{"before":"5da3a997298cac7e708588033468026080f8d45e","after":"5a6c332a8e0734aac2e9f97a19852e9837122702","ref":"refs/heads/main","pushedAt":"2024-01-31T13:12:34.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":"better shape keys in Narrow\n\nReviewed By: VLanvin\n\nDifferential Revision: D53231278\n\nfbshipit-source-id: 56dad4bcc6f600ab7937fab9427a7bb7f9643404","shortMessageHtmlLink":"better shape keys in Narrow"}},{"before":"22c719eef1658475ba11f135f0c43dd3cce43cd1","after":"5da3a997298cac7e708588033468026080f8d45e","ref":"refs/heads/main","pushedAt":"2024-01-29T13:19:07.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":"better refinment of maps: implementation\n\nSummary:\nunder the hood, occurrence typing properly refines the map `#{required := _R1}`, however it is also aliased as `Foo` and occurrence typing doesn't handle such aliasing properly (yet).\n\nAliasing is somewhat handled in narrowing. This diff slightly improves narrowing of map types: if a particular required key doesn't exist among *all* keys - then the narrowing would be an empty type `none()`.\n\nReviewed By: VLanvin\n\nDifferential Revision: D53179541\n\nfbshipit-source-id: 4161da9276a0340cf0908fe2e997bb09aed08491","shortMessageHtmlLink":"better refinment of maps: implementation"}},{"before":"090fc58a083734956dbebe8ae357da0ce72d6fa4","after":"22c719eef1658475ba11f135f0c43dd3cce43cd1","ref":"refs/heads/main","pushedAt":"2023-12-21T22:26:10.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":"Revert IPC protocol merge\n\nSummary: Essentially a manual revert of D51524775 and D51584599, since these two diffs may be the cause of errors in CI.\n\nReviewed By: perehonchuk\n\nDifferential Revision: D52372925\n\nfbshipit-source-id: 6530356dcd7de6949eec7dd87364860fa09c2782","shortMessageHtmlLink":"Revert IPC protocol merge"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEb_k-YAA","startCursor":null,"endCursor":null}},"title":"Activity ยท WhatsApp/eqwalizer"}