{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":29857799,"defaultBranch":"main","name":"infer","ownerLogin":"facebook","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-01-26T11:19:13.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/69631?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1712061153.0","currentOid":""},"activityList":{"items":[{"before":"2880cfe6924dfc8c371fc5af98ba4c0845283d57","after":"068d9d04a5e76d9b27e163a4ab45488f7503585b","ref":"refs/heads/main","pushedAt":"2024-05-17T21:32:25.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":"[inferhack] rebox Hack strings\n\nSummary: Unboxed `HackString`s confuse existing pointer-based logic (leading to formulae like `0 < \"foo\"`). This restores boxing (similar to treatment of HackInt) for the time being\n\nReviewed By: jvillard\n\nDifferential Revision: D57492969\n\nfbshipit-source-id: 977d7adac705def07eb42719dbe653908023b1da","shortMessageHtmlLink":"[inferhack] rebox Hack strings"}},{"before":"17e0130d4d5d787d714ddfd60aab6421eb16f174","after":"2880cfe6924dfc8c371fc5af98ba4c0845283d57","ref":"refs/heads/main","pushedAt":"2024-05-17T21:01: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":"[retain cycles] Add test that shows a missing part of the trace\n\nSummary: We are missing the part about the execution of `hitViewInScrubber` that will explain how the cycle took place.\n\nReviewed By: geralt-encore\n\nDifferential Revision: D57496059\n\nfbshipit-source-id: 3366358ab772635f31a2cf82d2ac5cfb6031eff2","shortMessageHtmlLink":"[retain cycles] Add test that shows a missing part of the trace"}},{"before":"237860c03dc9b1e9525506c1c40b8d8513069791","after":"17e0130d4d5d787d714ddfd60aab6421eb16f174","ref":"refs/heads/main","pushedAt":"2024-05-17T15:03: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":"Lineage: split ArgumentOf/ReturnOf nodes on their known fields\n\nSummary:\nWithin a procedure analysis, the Argument and Return nodes hold some field information. The\nArgumentOf and ReturnOf nodes, that make the connection to other procedures graphs, used to not be\nfield-sensitive in the caller graph.\n\nThis diff makes ArgumentOf and ReturnOf hold shape informations. This allows in turn to have all the\nargument and return nodes splitted in the json output, making the graph simpler to traverse (because\nit is less connected).\n\nInjection and projection metadata now only exist on some Call and Return edges. This happens on\nshape-polymorphic callees when they're called with shapes having fields.\n\nReviewed By: rgrig\n\nDifferential Revision: D57446503\n\nfbshipit-source-id: 0e50279bfcbe0149c95d27a463022d78a9ca2b9a","shortMessageHtmlLink":"Lineage: split ArgumentOf/ReturnOf nodes on their known fields"}},{"before":"70fc167f0b9bf1ad9ce26c472fbaa1102b5e88a0","after":"237860c03dc9b1e9525506c1c40b8d8513069791","ref":"refs/heads/main","pushedAt":"2024-05-17T13:02:35.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":"[refactor] Use Re.Str instead of Str\n\nReviewed By: geralt-encore\n\nDifferential Revision: D57434740\n\nfbshipit-source-id: b750779b7398d7a1d5cc1f9fd72a1be7ec028c7d","shortMessageHtmlLink":"[refactor] Use Re.Str instead of Str"}},{"before":"72e769446650d1c1b76e667d0da21449f0d05065","after":"70fc167f0b9bf1ad9ce26c472fbaa1102b5e88a0","ref":"refs/heads/main","pushedAt":"2024-05-16T19:53: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":"[pulse] do not crash when pretty printing\n\nSummary:\nWe probably should not have `TakeAddress` in the first place but if we\ndo then don't crash.\n\nReviewed By: geralt-encore\n\nDifferential Revision: D57440164\n\nfbshipit-source-id: 7c9a054795aa3795e34849f56976a012937b05f7","shortMessageHtmlLink":"[pulse] do not crash when pretty printing"}},{"before":"e2496d19a4a95175f391a48f6116f12c4e3e6601","after":"72e769446650d1c1b76e667d0da21449f0d05065","ref":"refs/heads/main","pushedAt":"2024-05-16T16:41:23.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":"[infer] Refactor to call Str.regexp as less as possible\n\nSummary: ^^\n\nReviewed By: ngorogiannis\n\nDifferential Revision:\nD57379261\n\nPrivacy Context Container: L1208441\n\nfbshipit-source-id: 62e4f63cad83ec090173e7e6e58c6db65f2b11a1","shortMessageHtmlLink":"[infer] Refactor to call Str.regexp as less as possible"}},{"before":"59e82d5b7d63ed2bea4db98261a888e020cdad0b","after":"e2496d19a4a95175f391a48f6116f12c4e3e6601","ref":"refs/heads/main","pushedAt":"2024-05-16T15:20: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":"Lineage: add field exclusion as Src and Dst functions, factoring add_filtered_var_path_flow out\n\nSummary:\n`add_filtered_var_path_flow` was the last remnant of ad-hoc source/dest-specific functions after the\nlast refactoring passes. It is specifically used for the `maps:put` model to avoid writing flow from\nthe put-key element of the source map.\n\nTo factor it away from the code, we add field-exclusion functions within the `Src` and `Dst`\nmodule. It then appears as another instance of the general flow recording function. To keep checking\nfor shape equality, we implement this by adding to `add_var_path_flow` a new `exclude` optional field\nlabel argument.\n\nReviewed By: rgrig\n\nDifferential Revision: D57280338\n\nfbshipit-source-id: 17e573b5d509b28f0da4ec4cac1c66e99ed6218b","shortMessageHtmlLink":"Lineage: add field exclusion as Src and Dst functions, factoring add_…"}},{"before":"33a74f36ad7ce5b3600c197a67b2ab9b1a466d00","after":"59e82d5b7d63ed2bea4db98261a888e020cdad0b","ref":"refs/heads/main","pushedAt":"2024-05-16T13:35:57.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":"[infer] Initial version of cannot instantiate abstract class checker\n\nSummary: Initial version of cannot instantiate abstract class checker\n\nReviewed By: jvillard\n\nDifferential Revision:\nD57381709\n\nPrivacy Context Container: L1122176\n\nfbshipit-source-id: 62f6623ee1033d62e60f588002afdad81497a953","shortMessageHtmlLink":"[infer] Initial version of cannot instantiate abstract class checker"}},{"before":"159b2b67e994565ff1dd988e9d6fd4dcc5f4b820","after":"33a74f36ad7ce5b3600c197a67b2ab9b1a466d00","ref":"refs/heads/main","pushedAt":"2024-05-15T18:40: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":"Lineage: have destinations also generate signals\n\nSummary:\nLineage sources generate signals that are used as slots to build the corresponding destinations. That\nworks well for most flow recording but is not very convenient when the destination is holding some\ninformation, which is the usecase for the ad-how `add_flow_to_var_path`.\n\nWe add signals to destinations, which allows to implement a single generic `add_flow_f` function that\ncan use the signals from both the source and the destination to generate the kind. It subsumes the\nprevious functions to write from and to variable paths into special nodes.\n\nReviewed By: rgrig\n\nDifferential Revision: D57280329\n\nfbshipit-source-id: 88015351ea23a3f00e68b4da7e16d7d74fe4ef7a","shortMessageHtmlLink":"Lineage: have destinations also generate signals"}},{"before":"8a7f30cb9fdb9025dfbd8fa3970b23142fb519f6","after":"159b2b67e994565ff1dd988e9d6fd4dcc5f4b820","ref":"refs/heads/main","pushedAt":"2024-05-15T18:33: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":"[biabduction] Increase timeout\n\nSummary: Increase the timeout for our java tests to avoid flakiness.\n\nReviewed By: ngorogiannis\n\nDifferential Revision: D57380416\n\nfbshipit-source-id: 979d8496a23a85b2256bf201f53745e432004023","shortMessageHtmlLink":"[biabduction] Increase timeout"}},{"before":"85ebfa2d867a05d43be8d99c17fb1d6eb6cf995f","after":"8a7f30cb9fdb9025dfbd8fa3970b23142fb519f6","ref":"refs/heads/main","pushedAt":"2024-05-15T15:08:57.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":"[inferhack] add test case for nullability\n\nSummary: simple testcase for nullability in type tests introduced in earlier diffs - shows FN becoming bad and FP becoming OK\n\nReviewed By: geralt-encore\n\nDifferential Revision: D57278896\n\nfbshipit-source-id: e651c57026b6f26be87f017c8cdbe451a14ad81e","shortMessageHtmlLink":"[inferhack] add test case for nullability"}},{"before":"c35eba1a4b027c794c4973de48cd664fb5dc5bfe","after":"85ebfa2d867a05d43be8d99c17fb1d6eb6cf995f","ref":"refs/heads/main","pushedAt":"2024-05-15T10:18:05.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":"[retain cycles] Do not follow paths where blocks are captured in blocks\n\nSummary: This leads to false positives.\n\nReviewed By: jvillard\n\nDifferential Revision: D57275043\n\nfbshipit-source-id: 7953d212f9798089b145d2aedfb9d71ba5251fe3","shortMessageHtmlLink":"[retain cycles] Do not follow paths where blocks are captured in blocks"}},{"before":"e426b7f23bd5dcc80848f52b4bc82d78034cae86","after":"c35eba1a4b027c794c4973de48cd664fb5dc5bfe","ref":"refs/heads/main","pushedAt":"2024-05-14T21:34:07.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 inverted formula\n\nSummary: Fix accidentally inverted formula\n\nReviewed By: skcho\n\nDifferential Revision: D57329042\n\nfbshipit-source-id: ec8975714ecfbce208134c0a7767299f484d3f29","shortMessageHtmlLink":"fix inverted formula"}},{"before":"612a4f5a8a5eec3eea0af33ddfef4293baa00191","after":"e426b7f23bd5dcc80848f52b4bc82d78034cae86","ref":"refs/heads/main","pushedAt":"2024-05-14T18:41:09.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":"[infer] Use Re.Str instead of Str\n\nSummary: > Re.Str is a drop-in repalcement for Str, with faster matching on average (using lazily constructed DFA)\n\nReviewed By: ngorogiannis\n\nDifferential Revision:\nD57287341\n\nPrivacy Context Container: L1208441\n\nfbshipit-source-id: 48153b05ae8641ffcb968756c50e886f16dbb381","shortMessageHtmlLink":"[infer] Use Re.Str instead of Str"}},{"before":"35f7aafdec51cff4da0bc7f68f52e09e4ed3ad34","after":"612a4f5a8a5eec3eea0af33ddfef4293baa00191","ref":"refs/heads/main","pushedAt":"2024-05-14T17:45:28.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":"[starvation] Disabled guards in interprocedural setting\n\nSummary:\nguards aren't supported in interprocedural setting. So let's remove\nlocks locked by guards from summaries, to avoid reporting FPs\n\nReviewed By: ngorogiannis\n\nDifferential Revision: D57327739\n\nfbshipit-source-id: 449405c57551dcb7899ccc811ebeb4db727fac2e","shortMessageHtmlLink":"[starvation] Disabled guards in interprocedural setting"}},{"before":"1e80ab5c4cfebcbbe44f6e950d441d52166d681d","after":"35f7aafdec51cff4da0bc7f68f52e09e4ed3ad34","ref":"refs/heads/main","pushedAt":"2024-05-14T17:08:47.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":"Lineage: remove some use of add_parallel_var_path_flow\n\nSummary:\n`add_parallel_var_path_flow` used to be an hard-coded double-cell-fold on two variable paths to write\nin parallel, also allowing the user to provide an `exclude` function to not write on some specific\nsource/destination fields. That exclude function is currently used only on maps:put-like models to\nnot write flow from the old map on the key being put.\n\nWe change all the uses of this function to use the simpler `add_var_path_flow` that is a simple\nadapter of the slot-using flow writing function implemented on previous commits (and adds a check for\nshape equality for bug catching).\n\nParallel write with exclusion is kept as-is to make reviewing easier.\n\nReviewed By: rgrig\n\nDifferential Revision: D57217127\n\nfbshipit-source-id: 2c7d0fa6ec93b713f807d1d9b1833e00fe5b4241","shortMessageHtmlLink":"Lineage: remove some use of add_parallel_var_path_flow"}},{"before":"e7cc9a21e28b476d80451eb009ccccf577e8bfad","after":"1e80ab5c4cfebcbbe44f6e950d441d52166d681d","ref":"refs/heads/main","pushedAt":"2024-05-14T11: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":"[infer] Add struct-as-cpp-class option to fix C/C++ linking issue\n\nSummary:\nFixed C/C++ issue in two steps:\n1) Adds an option to always translate CStruct into CppClass. With the option (default), the behaviour is the same as before. Enabling the option makes sure that types of global variables compare equal if defined accross C/C++ source files\n2) Change comparison for AbstractAddress to ignore translation units of global variables\n\nThis resolves the issue, notice no_deadlock_extern_c.c reports are removed from issues.exp\n\nReviewed By: skcho\n\nDifferential Revision:\nD56631749\n\nPrivacy Context Container: L1208441\n\nfbshipit-source-id: 86d54d6eb5968922ac4858429cb6c2dbbc4956a8","shortMessageHtmlLink":"[infer] Add struct-as-cpp-class option to fix C/C++ linking issue"}},{"before":"e4d53318cebee972cb53e330c9747e8a45ba8810","after":"e7cc9a21e28b476d80451eb009ccccf577e8bfad","ref":"refs/heads/main","pushedAt":"2024-05-14T08:24: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":"[infer] Add test demonstrating C/C++ issue\n\nSummary:\nAdd a test demonstrating an issue with C and C++ using same locks. Notice that the test shouldn't deadlock, but infer reports one\n\nAlso renames global mutex-es for previous tests to avoid global name clashes\n\nReviewed By: skcho\n\nDifferential Revision:\nD56631426\n\nPrivacy Context Container: L1208441\n\nfbshipit-source-id: 64a822d73751558ecf33d2845f7c723e7c0c8c16","shortMessageHtmlLink":"[infer] Add test demonstrating C/C++ issue"}},{"before":"62b8cad0867d1fdf1b837cde01bb43147f784f7c","after":"e4d53318cebee972cb53e330c9747e8a45ba8810","ref":"refs/heads/main","pushedAt":"2024-05-13T21:38:59.000Z","pushType":"push","commitsCount":6,"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":"[pp] avoid \".f->=-\", print \".f->-\" instead\n\nSummary: small tweak\n\nReviewed By: ngorogiannis\n\nDifferential Revision: D57273778\n\nfbshipit-source-id: 1bd5c6861945214bba563b239fe055b87f5f559e","shortMessageHtmlLink":"[pp] avoid \".f->=-\", print \".f->-\" instead"}},{"before":"8b492799ea38f3827734b77283823f2d68de261d","after":"62b8cad0867d1fdf1b837cde01bb43147f784f7c","ref":"refs/heads/main","pushedAt":"2024-05-13T21:32:07.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":"[infer] incorporate nullability information in type tests\n\nSummary: Make infer able to deal with the extra nullability information in type tests that passed through from hackc\n\nReviewed By: skcho\n\nDifferential Revision: D57247986\n\nfbshipit-source-id: 8f3ed63ae332efc94642fd7e09587e316fe6308b","shortMessageHtmlLink":"[infer] incorporate nullability information in type tests"}},{"before":"b8d8b2117f63cb3ed7e09fcf59a446976cb6aead","after":"8b492799ea38f3827734b77283823f2d68de261d","ref":"refs/heads/main","pushedAt":"2024-05-13T21:18: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":"Lineage: introduce slots for sources and destinations\n\nSummary:\nWe enrich Lineage sources and destinations used to record flow from sequences of vertices to\nrespectively sequences of vertex and slot and sequences of vertices given a slot.\n\nRather than having N² flow recording functions depending on the particularities of theses sources and\ndestinations, this is a foundation for a unified way of connecting sources and destinations\ntogether. For instance, \"parallel\" flow will correspond to use the slot generated with each source\nvertex to produce the corresponding destination ones, and \"product\" variable path flow amounts to\nignoring the slots of the source vertex (which is done on the source itself using `Src.oblivious`)\nand use the root field path `[]` as a slot for destination (which is done on the destination using\n`Dst.all_fields`).\n\n`Argument` and `Return` source and destinations can now be considered as having a field path\nslot. Since the flow production is source-directed, we add to `LineageShape` a function to fold over\nthe terminal fields of an argument, but this isn't necessary yet for the return (as we use a normal\nvariable to produce the slots).\n\nWe do not transform every flow-production code yet into this new model: to ease reviewing and\nchecking for specific corner cases, some of the old functions (eg. write from/to var paths) remain.\n\nReviewed By: rgrig\n\nDifferential Revision: D57212632\n\nfbshipit-source-id: dd4b7356898026cfddd3166b2c526373196e916c","shortMessageHtmlLink":"Lineage: introduce slots for sources and destinations"}},{"before":"360861ce293fa58edfe976024a25e1961c266ba0","after":"b8d8b2117f63cb3ed7e09fcf59a446976cb6aead","ref":"refs/heads/main","pushedAt":"2024-05-13T18:32: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":"[pulse] Bug-fix nontermination\n\nSummary:\nSuppose a formula contained `(x<2)=a1 && a1=0`, and we want to prune\n`x=2`. Pulse used to notice that the inequality is the same as `x≥2`,\nwhich it tried to represent as `x-2=a2`, where a2 is a fresh nonnegative\nvariable. Because `x=2` is known, the `x-2` had normal form `0`, so\nPulse ends up setting `a2=a1=0`. While doing so, it notices again that\n`(x<2)=a1` has a simpler form, and starts again.\n\nThe fix in this commit is to encode `l1≥l2` as `l1-l2=a` (for fresh\nnonnegative `a`) iff the normal form of `l1-l2` is not already known to be\nnonnegative (or known to be negative, in which case a contradiction is\ndetected).\n\nReviewed By: jvillard\n\nDifferential Revision: D57113153\n\nfbshipit-source-id: a90d095fedb94c665224587e384951c623a3616e","shortMessageHtmlLink":"[pulse] Bug-fix nontermination"}},{"before":"504b8077e87fc3bd7c35c9aac406de2473982fa4","after":"360861ce293fa58edfe976024a25e1961c266ba0","ref":"refs/heads/main","pushedAt":"2024-05-13T15:29: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":"[debug] fix toplevel init script\n\nSummary: `./infer/scripts/infer_repl` was trying to load the defunct `Nullsafe` module.\n\nReviewed By: ngorogiannis\n\nDifferential Revision: D57273753\n\nfbshipit-source-id: 93de6d6a1be1c8651cf145b01df781a0a53037cf","shortMessageHtmlLink":"[debug] fix toplevel init script"}},{"before":"bcb4b88ac7784e4901d8aa2e93d5a3ef3fb45689","after":"504b8077e87fc3bd7c35c9aac406de2473982fa4","ref":"refs/heads/main","pushedAt":"2024-05-10T17:47:36.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":"[report] Adding a flag to specify false positives to skip\n\nSummary:\nSometimes users know that Infer found a false positive and would like to suppress it. Now we have a way. We can't use line to specify the issue because that changes too quickly, we we specify bug_type, file, class and method.\n\nWe could also add some relevant variable names or such in the future.\n\nReviewed By: jvillard\n\nDifferential Revision: D57112894\n\nfbshipit-source-id: ab69a5d121e70acc56f0982485bb3956bd4b7eec","shortMessageHtmlLink":"[report] Adding a flag to specify false positives to skip"}},{"before":"aad98ef92a337072fe697ea198c33f044d042167","after":"bcb4b88ac7784e4901d8aa2e93d5a3ef3fb45689","ref":"refs/heads/main","pushedAt":"2024-05-10T13:23:25.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":"LineageTaint: don't follow Return edges after a Call has been traversed\n\nSummary:\nBlindly following Call then Return edges can yield a huge number of false positive paths as it makes\nthe pathdinfing completely insensitive to the actual call stack (pathfinding could branch into\na callee through [Call] and return into a completely different caller through [Return]).\n\nWhen processing a function call, Lineage generates [Summary] edges that can be used instead to\ncorrectly follow function calls.\n\nOne still needs to follow [Return] edges in the beginning of the paths and [Call] in the end, to\nsupport sources returned from nested function calls and similarly calls to nested sinks.\n\nA future work is to be able to expand up to a certain depth of function calls to see what happens\ninside instead of simply having a Derive edge generated.\n\nReviewed By: rgrig\n\nDifferential Revision: D57157099\n\nfbshipit-source-id: 6d4435b157ae6b8a237aab17b291c37f6870d926","shortMessageHtmlLink":"LineageTaint: don't follow Return edges after a Call has been traversed"}},{"before":"43ea25d89073521fdd4d3ab212ff08b68fd9718d","after":"aad98ef92a337072fe697ea198c33f044d042167","ref":"refs/heads/main","pushedAt":"2024-05-10T11:32:25.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":"[retain cycles] Make sure that the reported cycles contain at least one ObjC object or block\n\nSummary: Previously we were aiming to make sure that the objects in the cycle are ObjC objects or blocks, but we forgot to ensure that there is at least one of those in the cycle. So we were getting weird examples of cycles in pointers like in the test.\n\nReviewed By: geralt-encore\n\nDifferential Revision: D57164134\n\nfbshipit-source-id: 3691af5496a3e4e62d1e9f0faeee2b5886651191","shortMessageHtmlLink":"[retain cycles] Make sure that the reported cycles contain at least o…"}},{"before":"c859ef4e8996ba9899929182709c10639e80c352","after":"43ea25d89073521fdd4d3ab212ff08b68fd9718d","ref":"refs/heads/main","pushedAt":"2024-05-10T06:41:07.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":"[annot] Warn when a method is both a source and a sink\n\nSummary: Add support for reporting the corner case where some method is marked both as a source and a sink. Previously this was not reported because in this case there is no `call` instruction happening. This can be enabled by a flag which is `false` by default.\n\nReviewed By: rgrig\n\nDifferential Revision:\nD57156089\n\nPrivacy Context Container: L1208441\n\nfbshipit-source-id: e81f6248d1d70fbaa22000d810f693594cdfee83","shortMessageHtmlLink":"[annot] Warn when a method is both a source and a sink"}},{"before":"add3bd4c33f86c632875e432cfde910f81ca8a45","after":"c859ef4e8996ba9899929182709c10639e80c352","ref":"refs/heads/main","pushedAt":"2024-05-09T19:37: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":"[annot] Remove deprecated argument\n\nSummary: Remove the short-lived argument. Use `--annotation-reachability-apply-superclass-annotations` instead which implements a similar functionality but in a better way.\n\nReviewed By: ddino\n\nDifferential Revision:\nD57157210\n\nPrivacy Context Container: L1208441\n\nfbshipit-source-id: f6f2a437370808fd1eff068df7878947302bd761","shortMessageHtmlLink":"[annot] Remove deprecated argument"}},{"before":"8161bc5f1ea8942e0b4d36c0634fdf8782669a17","after":"add3bd4c33f86c632875e432cfde910f81ca8a45","ref":"refs/heads/main","pushedAt":"2024-05-09T17:59: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":"[inferhack] add test for nullable type tests\n\nSummary: Introduce an FN and an FP test to show infer currently treats `is ?A` incorrectly, which we will rectify shortly\n\nReviewed By: geralt-encore\n\nDifferential Revision: D57057260\n\nfbshipit-source-id: 25728edc592ebd5e4eb3183d33b2e413a7fe53cd","shortMessageHtmlLink":"[inferhack] add test for nullable type tests"}},{"before":"938b4b0aed83a24272eac02f3dd2cc8e925b6438","after":"8161bc5f1ea8942e0b4d36c0634fdf8782669a17","ref":"refs/heads/main","pushedAt":"2024-05-09T11:10:40.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":"[retain cycles] Only enable the retain cycle checker in Pulse if the issue type is enabled\n\nSummary: It's difficult to detangle the different clang languages in the backend, and whilst this checker it's useful for Objective-C and Objective-C++ code, it's not useful for C++ code, so we can use the `IssueType.retain_cycle.enabled` flag to disable it in such codebases to avoid unnecessary computations.\n\nReviewed By: skcho\n\nDifferential Revision: D57107152\n\nfbshipit-source-id: 5053f57e0b7e7fd53f911273b4097e0f6062036e","shortMessageHtmlLink":"[retain cycles] Only enable the retain cycle checker in Pulse if the …"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETU8CFwA","startCursor":null,"endCursor":null}},"title":"Activity · facebook/infer"}