{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":102137661,"defaultBranch":"master","name":"NullAway","ownerLogin":"uber","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-09-01T17:35:57.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/538264?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717433130.0","currentOid":""},"activityList":{"items":[{"before":"2a1e74bfa00b3d6673d84930f29220e4ab2bbfee","after":"27024651088c4b509704ae347f0a370ca0d0ea98","ref":"refs/heads/master","pushedAt":"2024-06-04T17:02:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Disable publishing of snapshot builds from CI (#967)\n\nNullAway is stable enough now, and easy enough to build, that publishing\r\nsnapshot builds is less compelling for users (who should not be relying\r\non frequently-changing remote SNAPSHOT versions anyway). We can think\r\nabout restoring these builds if there is demand.","shortMessageHtmlLink":"Disable publishing of snapshot builds from CI (#967)"}},{"before":"0ab6c22731c61546759f549eb1d3c32fd6db04de","after":"2a1e74bfa00b3d6673d84930f29220e4ab2bbfee","ref":"refs/heads/master","pushedAt":"2024-06-04T16:44:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Various cleanups enabled by bumping minimum Java and Error Prone versions (#962)\n\nThese warning suppressions and compatibility code are no longed needed\r\ngiven minimum JDK 11 and Error Prone 2.14.0","shortMessageHtmlLink":"Various cleanups enabled by bumping minimum Java and Error Prone vers…"}},{"before":"c89e51fd3f5f7c1c8002a37a0e5f8caaf3410089","after":null,"ref":"refs/heads/test-pr","pushedAt":"2024-06-03T16:45:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"}},{"before":null,"after":"c89e51fd3f5f7c1c8002a37a0e5f8caaf3410089","ref":"refs/heads/test-pr","pushedAt":"2024-06-03T16:42:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"modify","shortMessageHtmlLink":"modify"}},{"before":"569de1f821f92b06f316fe672d5418a510ba48af","after":null,"ref":"refs/heads/disable-benchmarking","pushedAt":"2024-06-03T14:19:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"}},{"before":"87ec10d4f26630d4bb91aefe5ff7c0fc181f030a","after":"0ab6c22731c61546759f549eb1d3c32fd6db04de","ref":"refs/heads/master","pushedAt":"2024-06-03T14:19:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"disable benchmarking (#965)","shortMessageHtmlLink":"disable benchmarking (#965)"}},{"before":null,"after":"569de1f821f92b06f316fe672d5418a510ba48af","ref":"refs/heads/disable-benchmarking","pushedAt":"2024-06-03T14:14:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"disable benchmarking","shortMessageHtmlLink":"disable benchmarking"}},{"before":"2f9bd83923938ffca98da5b253c8861e204c9dfd","after":"87ec10d4f26630d4bb91aefe5ff7c0fc181f030a","ref":"refs/heads/master","pushedAt":"2024-06-01T01:46:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Prepare next development version.","shortMessageHtmlLink":"Prepare next development version."}},{"before":"5d3e2642f3a1cc32524aefe01bd445a2a21cc06e","after":"2f9bd83923938ffca98da5b253c8861e204c9dfd","ref":"refs/heads/master","pushedAt":"2024-05-31T14:53:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Drop Java 8 support (#961)\n\nThis PR drops support for running NullAway on a JDK 8 JVM. After it\r\nlands, running NullAway will require JDK 11 or above (like current\r\nversions of Error Prone). There are various cleanups that this change\r\nenables, but to keep the PR small, I tried to do close to the minimum.\r\nIn particular:\r\n\r\n* I updated the minimum supported Error Prone version to 2.14.0, which\r\nis ~2 years old. Depending on what we decide about policy (see #882) we\r\nmay want to bump this to an even more recent version.\r\n* Update our JDK 8 test tasks to instead just test building with the\r\nmost recent supported Error Prone version but running on the oldest\r\nsupported version. I tested locally that this does still detect binary\r\ncompatibility issues.\r\n* Remove references to Java 11 in the jarinfer build files, as we now\r\nuse that version everywhere.\r\n\r\nWe will have to change the required CI job names before landing this. \r\n\r\nWill do other enabled cleanups in separate PRs.","shortMessageHtmlLink":"Drop Java 8 support (#961)"}},{"before":"e26e194c98a10f2e0eca1b6b154f222efa9acc32","after":"5d3e2642f3a1cc32524aefe01bd445a2a21cc06e","ref":"refs/heads/master","pushedAt":"2024-05-20T19:12:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Bump to Checker Framework 3.43.0 (#959)\n\nThe previous bug that was preventing us from upgrading\r\n(https://github.com/typetools/checker-framework/issues/6396) is fixed in\r\nthis release. Benchmarks show no performance regression.","shortMessageHtmlLink":"Bump to Checker Framework 3.43.0 (#959)"}},{"before":"f4c4734373811418de06255205a30c9b32c01c97","after":"e26e194c98a10f2e0eca1b6b154f222efa9acc32","ref":"refs/heads/master","pushedAt":"2024-05-17T18:30:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"JSpecify subtyping checks for arrays (#956)\n\nAdd checks for proper array subtyping (including nullability of array\r\ncontents) at pseudo-assignments and for method overriding. We do not yet\r\nhandle multi-dimensional arrays. Note that JSpecify allows for covariant\r\narray subtyping with respect to nullability (see\r\nhttps://github.com/jspecify/jspecify/issues/65) which complicates the\r\nimplementation a bit. Also some hacks are required since javac does not\r\npropagate the array contents nullability annotation into the types of\r\nthe relevant trees in all cases.","shortMessageHtmlLink":"JSpecify subtyping checks for arrays (#956)"}},{"before":"e0d5c6b5b1631d45cde1576d3c36abb8f15f774e","after":"f4c4734373811418de06255205a30c9b32c01c97","ref":"refs/heads/master","pushedAt":"2024-05-17T14:36:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Update to Error Prone 2.27.1 (#957)","shortMessageHtmlLink":"Update to Error Prone 2.27.1 (#957)"}},{"before":"c26ae17ca7f49d08867647bcf42690e6e87bc0b7","after":"e0d5c6b5b1631d45cde1576d3c36abb8f15f774e","ref":"refs/heads/master","pushedAt":"2024-05-14T02:56:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Refactor PreservedAnnotationTreeVisitor (#955)\n\nWe extract some code from `visitParameterizedType` into a proper\r\n`visitAnnotatedType` method. This will be useful for an upcoming PR that\r\nhandles `AnnotatedTypeTree`s in new array expressions. The change\r\nintroduces some complexity due to API changes in JDK 21, which we work\r\naround through further use of `MethodHandle`s.","shortMessageHtmlLink":"Refactor PreservedAnnotationTreeVisitor (#955)"}},{"before":"a017158303e0b138f748e1e88497e932a5a7def2","after":"c26ae17ca7f49d08867647bcf42690e6e87bc0b7","ref":"refs/heads/master","pushedAt":"2024-05-14T01:33:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Delete OptionalEmptinessHandler method that is no longer needed (#954)\n\nFixes #953","shortMessageHtmlLink":"Delete OptionalEmptinessHandler method that is no longer needed (#954)"}},{"before":"edcfe49ea5c305cc85b55878f3d5977e17bee2a4","after":"a017158303e0b138f748e1e88497e932a5a7def2","ref":"refs/heads/master","pushedAt":"2024-05-03T13:09:48.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Prepare next development version.","shortMessageHtmlLink":"Prepare next development version."}},{"before":"719b167ded3f65c4eb454d1909f436e9dd514076","after":"edcfe49ea5c305cc85b55878f3d5977e17bee2a4","ref":"refs/heads/master","pushedAt":"2024-04-30T03:03:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Propagate more nullability info to lambdas known to be invoked synchronously (#952)\n\nFixes #941\r\n\r\nWe propagate full nullability info from the enclosing context to\r\ncallbacks passed to `Map.forEach`, `Iterable.forEach`, `List.removeIf`,\r\nand all methods on `java.util.stream.Stream`","shortMessageHtmlLink":"Propagate more nullability info to lambdas known to be invoked synchr…"}},{"before":"09db47a4d99440e60d03e80d17e358299a618127","after":"719b167ded3f65c4eb454d1909f436e9dd514076","ref":"refs/heads/master","pushedAt":"2024-04-22T18:10:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Rename test classes (#951)\n\nThis is a pure refactoring PR that only touches test code and does the\r\nfollowing:\r\n\r\n* Renames test classes to remove the `NullAway` prefix, which hinders\r\nreadability\r\n* Moves JSpecify tests into their own package\r\n* Remove\r\n`nullaway/src/test/java/com/uber/nullaway/NullAwayTypeUseAnnotationTests.java`\r\nand move its one test into\r\n`nullaway/src/test/java/com/uber/nullaway/TypeUseAnnotationsTests.java`\r\n(this must have been a typo before)","shortMessageHtmlLink":"Rename test classes (#951)"}},{"before":"5acd394305a5fd69f775f471ea7594b344f81ad6","after":"09db47a4d99440e60d03e80d17e358299a618127","ref":"refs/heads/master","pushedAt":"2024-04-09T18:35:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"External Library Models Integration (#922)\n\nThe newly added `library-model` module consists of a CLI process that\r\ntakes an input directory with annotated java source files as a command\r\nline parameter and uses `com.github.javaparser` APIS to generate\r\n`libmodels.astubx` file containing method stubs for methods that return\r\n@Nullable. This can be run using the existing `JarInferEnabled` and\r\n`JarInferUseReturnAnnotations` flags.\r\n\r\nThis allows us to be able catch issues as shown in the below example\r\nfrom externally annotated source code:\r\n\r\n```java\r\n@NullMarked\r\npublic class AnnotationExample {\r\n @Nullable\r\n public String makeUpperCase(String inputString) {\r\n if (inputString == null || inputString.isEmpty()) {\r\n return null;\r\n } else {\r\n return inputString.toUpperCase();\r\n }\r\n }\r\n}\r\n\r\n```\r\n\r\n```java\r\nclass Test {\r\n static AnnotationExample annotationExample = new AnnotationExample();\r\n static void test(String value){}\r\n static void testPositive() {\r\n // BUG: Diagnostic contains: passing @Nullable parameter 'annotationExample.makeUpperCase(\\\"nullaway\\\")'\r\n test(annotationExample.makeUpperCase(\\\"nullaway\\\"));\r\n } \r\n}\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: Manu Sridharan \r\nCo-authored-by: Lázaro Clapp ","shortMessageHtmlLink":"External Library Models Integration (#922)"}},{"before":"7b8d80c514e22509719e7bc1b6da8dcd53f48ae4","after":"5acd394305a5fd69f775f471ea7594b344f81ad6","ref":"refs/heads/master","pushedAt":"2024-03-29T15:03:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Prepare next development version.","shortMessageHtmlLink":"Prepare next development version."}},{"before":"76f0f7744cd32fcafe06eb99290e6ffd91cecb39","after":"7b8d80c514e22509719e7bc1b6da8dcd53f48ae4","ref":"refs/heads/master","pushedAt":"2024-03-29T14:30:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Handle methods that fail unconditionally in ContractHandler (#946)\n\nFixes #943\n\nWe extend `ContractHandler` to insert an unconditional `throw` into the\nCFG when encountering a method that fails unconditionally according to\nits `@Contract` annotation.","shortMessageHtmlLink":"Handle methods that fail unconditionally in ContractHandler (#946)"}},{"before":"ce892d7f7134141ce02ea674b5b28aaa971a117d","after":"76f0f7744cd32fcafe06eb99290e6ffd91cecb39","ref":"refs/heads/master","pushedAt":"2024-03-27T18:43:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"`Collectors.toMap` handling for streams (#938)\n\nFixes #934\r\n\r\nThe key new thing with the support here is we have further nesting.\r\nRather than a `map` method, where the relevant lambda is passed\r\ndirectly:\r\n```java\r\nstream.filter(foo -> foo.bar != null).map(foo -> foo.bar.baz)\r\n```\r\nIn this case we have a `collect` call, which gets as its argument the\r\nresult of `Collectors.toMap`, and the relevant lambdas are passed to\r\n`toMap`:\r\n```java\r\nstream\r\n .filter(foo -> foo.bar != null)\r\n .collect(Collectors.toMap(foo -> foo.bar.baz, foo -> foo.bar.other))\r\n```\r\nSupporting this requires some new types of logic in our streams handler\r\n(particularly because there are multiple relevant lambdas for a single\r\n`collect` call). We do also handle anonymous inner classes.","shortMessageHtmlLink":"Collectors.toMap handling for streams (#938)"}},{"before":"83e0149999f7acdab95d363eba04bc87c1c861bb","after":"ce892d7f7134141ce02ea674b5b28aaa971a117d","ref":"refs/heads/master","pushedAt":"2024-03-26T18:15:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Add test for boolean contract with extra message argument (#945)\n\nThis just tests an additional scenario; no logic changes.","shortMessageHtmlLink":"Add test for boolean contract with extra message argument (#945)"}},{"before":"5bedf0a52fed78008ccfa7558bf083c1f3fa7064","after":"83e0149999f7acdab95d363eba04bc87c1c861bb","ref":"refs/heads/master","pushedAt":"2024-03-24T20:13:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Update various dependencies (#939)\n\nGradle, Error Prone, Spotless, GJF, and versions plugin to latest.\r\n\r\nWe'll have to update required CI job names before landing this.","shortMessageHtmlLink":"Update various dependencies (#939)"}},{"before":"3bde26cdad1c06f0312cd85c22244c9ad5afea2f","after":"5bedf0a52fed78008ccfa7558bf083c1f3fa7064","ref":"refs/heads/master","pushedAt":"2024-03-22T21:34:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Track access paths of the form `Foo.this.bar` (#937)\n\nFixes #936 \r\n\r\nWe add limited tracking of such access paths, to handle null checks on\r\nfields from an enclosing class of a nested class.","shortMessageHtmlLink":"Track access paths of the form Foo.this.bar (#937)"}},{"before":"e3a3c7672d51ec2e90c0e60c30af477ccf6f7757","after":"3bde26cdad1c06f0312cd85c22244c9ad5afea2f","ref":"refs/heads/master","pushedAt":"2024-03-19T17:14:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Handle JDK 21 case operands in type refinement (#928)\n\nFixes #927. We also extract some common logic in\r\n`AccessPathNullnessPropagation` around handling equality comparisons to\r\navoid duplication.","shortMessageHtmlLink":"Handle JDK 21 case operands in type refinement (#928)"}},{"before":"1c497a7cff1c4d37a0f51abdf98e0759c0b7539a","after":"e3a3c7672d51ec2e90c0e60c30af477ccf6f7757","ref":"refs/heads/master","pushedAt":"2024-03-11T17:42:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"JSpecify: Handle @Nullable assignments to @Nonnull arrays (#929)\n\nHandles cases in JSpecify mode where a `@Nullable` element is assigned\r\nto an unannotated array. Added relevant unit tests.\r\n\r\n**Current Behavior**\r\n\r\nBoth are valid assignments.\r\n\r\n```\r\nString [] foo = new String[10];\r\n@Nullable String [] bar = new String [10];\r\nfoo[1] = null;\r\nbar[1] = null;\r\n```\r\n\r\n**New Behavior**\r\n\r\nAssignment to `foo` generates an error since array elements are\r\n`@Nonnull`.\r\n\r\n```\r\nString [] foo = new String[10];\r\n@Nullable String [] bar = new String [10];\r\nfoo[1] = null;\r\nbar[1]=null;\r\n```\r\n\r\n---------\r\n\r\nCo-authored-by: Manu Sridharan ","shortMessageHtmlLink":"JSpecify: Handle @nullable assignments to @nonnull arrays (#929)"}},{"before":"575ff7e4c25dc4b56f190dcb560bbfdd38b85ccd","after":null,"ref":"refs/tags/vX.Y.Z","pushedAt":"2024-03-04T17:58:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"}},{"before":"575ff7e4c25dc4b56f190dcb560bbfdd38b85ccd","after":null,"ref":"refs/tags/vX.Y.Z","pushedAt":"2024-03-04T17:57:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"}},{"before":"348bb4d997d04b3f86fe6ac629e056c52bfbbb27","after":"1c497a7cff1c4d37a0f51abdf98e0759c0b7539a","ref":"refs/heads/master","pushedAt":"2024-03-04T17:56:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yuxincs","name":"Yuxin Wang","path":"/yuxincs","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10323518?s=80&v=4"},"commit":{"message":"Prepare next development version.","shortMessageHtmlLink":"Prepare next development version."}},{"before":"d7c757f5be547ca298f17625234a8c913adeb099","after":"348bb4d997d04b3f86fe6ac629e056c52bfbbb27","ref":"refs/heads/master","pushedAt":"2024-03-04T17:09:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"msridhar","name":"Manu Sridharan","path":"/msridhar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/193105?s=80&v=4"},"commit":{"message":"Fix handling of references to methods of array types and type variables (#926)\n\nAfter #920 we check the nullability of the qualifier expression of a\r\nmethod reference. We weren't correctly handling the cases where that\r\nexpression was an array type or a type variable","shortMessageHtmlLink":"Fix handling of references to methods of array types and type variabl…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXEaHPQA","startCursor":null,"endCursor":null}},"title":"Activity · uber/NullAway"}